From 852887d38db3fd71c05fd955af42b0a69d1bf8f0 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sat, 13 Jun 2015 22:08:13 -0700 Subject: [PATCH 01/11] add cmake config --- .gitignore | 1 + CMakeLists.txt | 147 +++++++++++++++++++++++++++++++++++++ cmake/CheckFuncs.cmake | 49 +++++++++++++ cmake/CheckFuncs_stub.c.in | 16 ++++ cmake/FindFUSE.cmake | 42 +++++++++++ cmake/FindRLog.cmake | 28 +++++++ config.h.cmake | 16 ++++ devmode | 4 + encfs/SSL_Cipher.cpp | 4 +- encfs/encfs.cpp | 4 +- encfs/encfsctl.cpp | 4 - encfs/test.cpp | 4 - 12 files changed, 307 insertions(+), 12 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/CheckFuncs.cmake create mode 100644 cmake/CheckFuncs_stub.c.in create mode 100644 cmake/FindFUSE.cmake create mode 100644 cmake/FindRLog.cmake create mode 100644 config.h.cmake create mode 100644 devmode diff --git a/.gitignore b/.gitignore index 1ffb583..2325f5e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ Makefile.in /ABOUT-NLS /autom4te.cache/ +/build /build-aux/ /config.h /config.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b107388 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,147 @@ +cmake_minimum_required(VERSION 3.0) +project(EncFS C CXX) + +set (ENCFS_MAJOR 1) +set (ENCFS_MINOR 9) +set (ENCFS_VERSION "${ENCFS_MAJOR}.${ENCFS_MINOR}") +set (ENCFS_SOVERSION 7) +set (ENCFS_NAME "Encrypted Filesystem") + +set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + "${CMAKE_SOURCE_DIR}/cmake") + +# We need C++ 11 +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED on) + +# Check for FUSE. +find_package (FUSE REQUIRED) +include_directories (${FUSE_INCLUDE_DIR}) +add_definitions (-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26) + +# Check for OpenSSL. +find_package (OpenSSL REQUIRED) +include_directories (${OPENSSL_INCLUDE_DIR}) + +find_package(Boost + 1.34.0 + REQUIRED + COMPONENTS serialization) +include_directories (${Boost_INCLUDE_DIRS}) + +find_package (RLog REQUIRED) +add_definitions (-DRLOG_COMPONENT="encfs") +include_directories (${RLOG_INCLUDE_DIR}) + +find_program (POD2MAN pod2man) +include (FindGettext) + +# Check for include files and stdlib properties. +include (CheckIncludeFileCXX) +check_include_file_cxx (attr/xattr.h HAVE_ATTR_XATTR_H) +check_include_file_cxx (sys/xattr.h HAVE_SYS_XATTR_H) + +check_include_file_cxx (tr1/memory HAVE_TR1_MEMORY) +check_include_file_cxx (tr1/unordered_map HAVE_TR1_UNORDERED_MAP) +check_include_file_cxx (tr1/unordered_set HAVE_TR1_UNORDERED_SET) +check_include_file_cxx (tr1/tuple HAVE_TR1_TUPLE) + +# Check if xattr functions take extra arguments, as they do on OSX. +include (CheckCXXSourceCompiles) +check_cxx_source_compiles ("#include + #include + int main() { getxattr(0,0,0,0,0,0); return 1; } + " XATTR_ADD_OPT) + +# Check if we have lchmod. +include (CheckFuncs) +check_function_exists_glibc (lchmod HAVE_LCHMOD) + +set (CMAKE_THREAD_PREFER_PTHREAD) +find_package (Threads REQUIRED) + +# Packaging config. +set (CPACK_PACKAGE_NAME "encfs") +set (CPACK_PACKAGE_VERSION_MAJOR ${ENCFS_MAJOR}) +set (CPACK_PACKAGE_VERSION_MINOR ${ENCFS_MINOR}) +set (CPACK_SOURCE_GENERATOR TGZ) +set (CPACK_SOURCE_IGNORE_FILES + "/build/") +include (CPack) + +configure_file (${CMAKE_SOURCE_DIR}/config.h.cmake + ${CMAKE_BINARY_DIR}/config.h) + +include_directories (${CMAKE_BINARY_DIR}) +include_directories (${CMAKE_SOURCE_DIR}) + +set(SOURCE_FILES + encfs/autosprintf.cpp + encfs/base64.cpp + encfs/BlockFileIO.cpp + encfs/BlockNameIO.cpp + encfs/Cipher.cpp + encfs/CipherFileIO.cpp + encfs/CipherKey.cpp + encfs/ConfigReader.cpp + encfs/ConfigVar.cpp + encfs/Context.cpp + encfs/DirNode.cpp + encfs/encfs.cpp + encfs/FileIO.cpp + encfs/FileNode.cpp + encfs/FileUtils.cpp + encfs/Interface.cpp + encfs/MACFileIO.cpp + encfs/MemoryPool.cpp + encfs/NameIO.cpp + encfs/NullCipher.cpp + encfs/NullNameIO.cpp + encfs/openssl.cpp + encfs/RawFileIO.cpp + encfs/readpassphrase.cpp + encfs/SSL_Cipher.cpp + encfs/StreamNameIO.cpp +) +add_library(encfs1 SHARED ${SOURCE_FILES}) +set_property(TARGET encfs1 PROPERTY VERSION ${ENCFS_VERSION}) +set_property(TARGET encfs1 PROPERTY SOVERSION ${ENCFS_SOVERSION}) +target_link_libraries(encfs1 + ${FUSE_LIBRARIES} + ${OPENSSL_LIBRARIES} + ${Boost_LIBRARIES} + ${RLOG_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} +) + +add_executable (encfs encfs/main.cpp) +target_link_libraries (encfs encfs1) + +add_executable (encfsctl encfs/encfsctl.cpp) +target_link_libraries (encfsctl encfs1) + +add_executable (makekey encfs/makeKey.cpp) +target_link_libraries (makekey encfs1) + +add_executable (checkops encfs/test.cpp) +target_link_libraries (checkops encfs1) + +# Reference all headers, to make certain IDEs happy. +file (GLOB_RECURSE all_headers ${CMAKE_SOURCE_DIR}/*.h) +add_custom_target (all_placeholder SOURCES ${all_headers}) + +if (POD2MAN) + add_custom_target (encfs-man ALL + COMMAND ${POD2MAN} -u --section=1 --release=${ENCFS_VERSION} --center=${ENCFS_NAME} + ${CMAKE_SOURCE_DIR}/encfs/encfs.pod encfs.1) + + add_custom_target (encfsctl-man ALL + COMMAND ${POD2MAN} -u --section=1 --release=${ENCFS_VERSION} --center=${ENCFS_NAME} + ${CMAKE_SOURCE_DIR}/encfs/encfsctl.pod encfsctl.1) + + install (FILES ${CMAKE_BINARY_DIR}/encfs.1 ${CMAKE_BINARY_DIR}/encfsctl.1 + DESTINATION share/man/man1) +endif (POD2MAN) + +install (TARGETS encfs DESTINATION bin) +install (FILES ${CMAKE_SOURCE_DIR}/encfs/encssh DESTINATION bin) diff --git a/cmake/CheckFuncs.cmake b/cmake/CheckFuncs.cmake new file mode 100644 index 0000000..0670df9 --- /dev/null +++ b/cmake/CheckFuncs.cmake @@ -0,0 +1,49 @@ +# Check if the system has the specified function; treat glibc "stub" +# functions as nonexistent: +# CHECK_FUNCTION_EXISTS_GLIBC (FUNCTION FUNCVAR) +# +# FUNCTION - the function(s) where the prototype should be declared +# FUNCVAR - variable to define if the function does exist +# +# In particular, this understands the glibc convention of +# defining macros __stub_XXXX or __stub___XXXX if the function +# does appear in the library but is merely a stub that does nothing. +# By detecting this case, we can select alternate behavior on +# platforms that don't support this functionality. +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# Copyright (c) 2009, Michihiro NAKAJIMA +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +INCLUDE(CheckFunctionExists) +GET_FILENAME_COMPONENT(_selfdir_CheckFunctionExistsGlibc + "${CMAKE_CURRENT_LIST_FILE}" PATH) + +MACRO (CHECK_FUNCTION_EXISTS_GLIBC _FUNC _FUNCVAR) + IF(NOT DEFINED ${_FUNCVAR}) + SET(CHECK_STUB_FUNC_1 "__stub_${_FUNC}") + SET(CHECK_STUB_FUNC_2 "__stub___${_FUNC}") + CONFIGURE_FILE( ${_selfdir_CheckFunctionExistsGlibc}/CheckFuncs_stub.c.in + ${CMAKE_CURRENT_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c IMMEDIATE) + TRY_COMPILE(__stub + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS} + "${CHECK_INCLUDE_FILE_C_INCLUDE_DIRS}") + IF (__stub) + SET("${_FUNCVAR}" "" CACHE INTERNAL "Have function ${_FUNC}") + ELSE (__stub) + CHECK_FUNCTION_EXISTS("${_FUNC}" "${_FUNCVAR}") + ENDIF (__stub) + ENDIF(NOT DEFINED ${_FUNCVAR}) +ENDMACRO (CHECK_FUNCTION_EXISTS_GLIBC) + diff --git a/cmake/CheckFuncs_stub.c.in b/cmake/CheckFuncs_stub.c.in new file mode 100644 index 0000000..50da414 --- /dev/null +++ b/cmake/CheckFuncs_stub.c.in @@ -0,0 +1,16 @@ +#ifdef __STDC__ +#include +#else +#include +#endif + +int +main() +{ +#if defined ${CHECK_STUB_FUNC_1} || defined ${CHECK_STUB_FUNC_2} + return 0; +#else +this system have stub + return 0; +#endif +} diff --git a/cmake/FindFUSE.cmake b/cmake/FindFUSE.cmake new file mode 100644 index 0000000..22952e6 --- /dev/null +++ b/cmake/FindFUSE.cmake @@ -0,0 +1,42 @@ +# Find the FUSE includes and library +# +# FUSE_INCLUDE_DIR - where to find fuse.h, etc. +# FUSE_LIBRARIES - List of libraries when using FUSE. +# FUSE_FOUND - True if FUSE lib is found. + +# check if already in cache, be silent +IF (FUSE_INCLUDE_DIR) + SET (FUSE_FIND_QUIETLY TRUE) +ENDIF (FUSE_INCLUDE_DIR) + +# find includes +FIND_PATH (FUSE_INCLUDE_DIR fuse.h + /usr/include/fuse + /usr/local/include/fuse + /opt/include/fuse + /opt/local/include/fuse + /usr/include/osxfuse + /usr/local/include/osxfuse + /opt/local/include/osxfuse + /usr/pkg/include/fuse +) + +# find lib +if (APPLE) + SET(FUSE_NAMES libosxfuse.dylib fuse) +else (APPLE) + SET(FUSE_NAMES fuse) +endif (APPLE) +FIND_LIBRARY(FUSE_LIBRARIES + NAMES ${FUSE_NAMES} + PATHS /lib64 /lib /usr/lib64 /usr/lib + /usr/local/lib64 /usr/local/lib + /opt/local/lib /usr/pkg/lib +) + +include ("FindPackageHandleStandardArgs") +find_package_handle_standard_args ("FUSE" DEFAULT_MSG + FUSE_INCLUDE_DIR FUSE_LIBRARIES) + +mark_as_advanced (FUSE_INCLUDE_DIR FUSE_LIBRARIES) + diff --git a/cmake/FindRLog.cmake b/cmake/FindRLog.cmake new file mode 100644 index 0000000..87e1173 --- /dev/null +++ b/cmake/FindRLog.cmake @@ -0,0 +1,28 @@ +# FindRLog +# -------- +# +# Find RLog +# +# Find the RLog logging library. This module defines +# +# :: +# +# RLOG_INCLUDE_DIR, where to find rlog.h, etc. +# RLOG_LIBRARIES, the libraries needed to use RLog. +# RLOG_FOUND, If false, do not try to use RLog. + +find_path(RLOG_INCLUDE_DIR rlog/rlog.h) + +set(RLOG_NAMES ${RLOG_NAMES} rlog librlog) +find_library(RLOG_LIBRARY NAMES ${RLOG_NAMES} ) + +# handle the QUIETLY and REQUIRED arguments and set RLOG_FOUND to TRUE if +# all listed variables are TRUE +include (FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(RLOG DEFAULT_MSG RLOG_LIBRARY RLOG_INCLUDE_DIR) + +if(RLOG_FOUND) + set(RLOG_LIBRARIES ${RLOG_LIBRARY}) +endif() + +mark_as_advanced(RLOG_LIBRARY RLOG_INCLUDE_DIR ) diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 0000000..c182452 --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,16 @@ +#define VERSION "@ENCFS_VERSION@" + +#cmakedefine HAVE_ATTR_XATTR_H +#cmakedefine HAVE_SYS_XATTR_H +#cmakedefine XATTR_ADD_OPT + +#cmakedefine HAVE_TR1_MEMORY +#cmakedefine HAVE_TR1_UNORDERED_MAP +#cmakedefine HAVE_TR1_UNORDERED_SET +#cmakedefine HAVE_TR1_TUPLE + +#cmakedefine HAVE_LCHMOD + +/* TODO: add other thread library support. */ +#cmakedefine CMAKE_USE_PTHREADS_INIT + diff --git a/devmode b/devmode new file mode 100644 index 0000000..cb53a37 --- /dev/null +++ b/devmode @@ -0,0 +1,4 @@ +# Script which sets up the CMake build for Debug mode. +# After running, chdir to the build subdir ane run "make" +mkdir build +cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug $@ diff --git a/encfs/SSL_Cipher.cpp b/encfs/SSL_Cipher.cpp index b939d7c..50f1d95 100644 --- a/encfs/SSL_Cipher.cpp +++ b/encfs/SSL_Cipher.cpp @@ -158,7 +158,7 @@ int TimedPBKDF2(const char *pass, int passlen, const unsigned char *salt, static Interface BlowfishInterface("ssl/blowfish", 3, 0, 2); static Interface AESInterface("ssl/aes", 3, 0, 2); -#if defined(HAVE_EVP_BF) +#ifndef OPENSSL_NO_BF static Range BFKeyRange(128, 256, 32); static Range BFBlockRange(64, 4096, 8); @@ -182,7 +182,7 @@ static bool BF_Cipher_registered = BFKeyRange, BFBlockRange, NewBFCipher); #endif -#if defined(HAVE_EVP_AES) +#ifndef OPENSSL_NO_AES static Range AESKeyRange(128, 256, 64); static Range AESBlockRange(64, 4096, 16); diff --git a/encfs/encfs.cpp b/encfs/encfs.cpp index 42beac4..73b3e18 100644 --- a/encfs/encfs.cpp +++ b/encfs/encfs.cpp @@ -31,9 +31,9 @@ #include #endif -#if HAVE_SYS_XATTR_H +#if defined(HAVE_SYS_XATTR_H) #include -#elif HAVE_ATTR_XATTR_H +#elif defined(HAVE_ATTR_XATTR_H) #include #endif diff --git a/encfs/encfsctl.cpp b/encfs/encfsctl.cpp index e01880b..08782eb 100644 --- a/encfs/encfsctl.cpp +++ b/encfs/encfsctl.cpp @@ -29,10 +29,8 @@ #include #include -#ifdef HAVE_SSL #define NO_DES #include -#endif #include "Cipher.h" #include "Context.h" @@ -697,10 +695,8 @@ int main(int argc, char **argv) { textdomain(PACKAGE); #endif -#ifdef HAVE_SSL SSL_load_error_strings(); SSL_library_init(); -#endif StdioNode *slog = new StdioNode(STDERR_FILENO); slog->subscribeTo(GetGlobalChannel("error")); diff --git a/encfs/test.cpp b/encfs/test.cpp index defebb6..22d7242 100644 --- a/encfs/test.cpp +++ b/encfs/test.cpp @@ -39,13 +39,11 @@ #include #include -#ifdef HAVE_SSL #define NO_DES #include #ifndef OPENSSL_NO_ENGINE #include #endif -#endif using namespace std; using namespace rel; @@ -397,7 +395,6 @@ int main(int argc, char *argv[]) { stdLog.subscribeTo(RLOG_CHANNEL("debug")); #endif -#ifdef HAVE_SSL SSL_load_error_strings(); SSL_library_init(); @@ -406,7 +403,6 @@ int main(int argc, char *argv[]) { ENGINE_register_all_ciphers(); ENGINE_register_all_digests(); ENGINE_register_all_RAND(); -#endif #endif srand(time(0)); From 44aef545ab6a9e8ca536e69333fe72b45496a5ca Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sat, 13 Jun 2015 22:47:09 -0700 Subject: [PATCH 02/11] remove autoconf scripts, update build docs --- .travis.yml | 8 +- INSTALL.md | 12 +- Makefile.common | 2 - Makefile.dist | 5 - configure.ac | 224 ------------------------ encfs.spec.in | 207 ---------------------- encfs/Makefile.am | 149 ---------------- encfs/docs/Makefile.am | 4 - encfs/docs/en/Makefile.am | 4 - m4/Makefile.am | 10 -- m4/ax_boost_base.m4 | 266 ---------------------------- m4/ax_boost_serialization.m4 | 117 ------------- m4/ax_cxx_compile_stdcxx_11.m4 | 138 --------------- m4/ax_ext_check_header.m4 | 58 ------- m4/ax_ext_have_lib.m4 | 72 -------- m4/ax_pthread.m4 | 309 --------------------------------- makedist.sh | 12 -- makedist2.sh.in | 27 --- reconfig.sh | 3 - subdirs | 3 - 20 files changed, 10 insertions(+), 1620 deletions(-) delete mode 100644 Makefile.common delete mode 100644 Makefile.dist delete mode 100644 configure.ac delete mode 100644 encfs.spec.in delete mode 100644 encfs/Makefile.am delete mode 100644 encfs/docs/Makefile.am delete mode 100644 encfs/docs/en/Makefile.am delete mode 100644 m4/Makefile.am delete mode 100644 m4/ax_boost_base.m4 delete mode 100644 m4/ax_boost_serialization.m4 delete mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 delete mode 100644 m4/ax_ext_check_header.m4 delete mode 100644 m4/ax_ext_have_lib.m4 delete mode 100644 m4/ax_pthread.m4 delete mode 100644 makedist.sh delete mode 100644 makedist2.sh.in delete mode 100644 reconfig.sh delete mode 100644 subdirs diff --git a/.travis.yml b/.travis.yml index 635448c..475e334 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,11 +6,11 @@ compiler: before_install: - sudo apt-get update -qq - - sudo apt-get install -qq autopoint libfuse-dev libboost-serialization-dev + - sudo apt-get install -qq cmake libfuse-dev libboost-serialization-dev librlog-dev script: - - autoreconf -if - - ./configure + - sh devmode + - cd build - make - - ./encfs/test + - ./checkops diff --git a/INSTALL.md b/INSTALL.md index 3235046..de010ad 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,13 +8,13 @@ in the wiki. Compiling EncFS =============== -EncFS uses the GNU autoconf / automake toolchain to create makefiles. -Also, the configure script is automatically generated using autoreconf. +EncFS uses the CMake toolchain to create makefiles. -Compiling EncFS is a three-step process: +Steps to build EncFS: - autoreconf -if - ./configure + mkdir build + cd build + cmake .. make Optional, but strongly recommended, is running the test suite @@ -40,7 +40,7 @@ Dependencies EncFS depends on a number of libraries: - openssl fuse boost-serialization gettext libtool libintl + openssl fuse boost-serialization gettext libintl librlog Compiling on Debian and Ubuntu ============================== diff --git a/Makefile.common b/Makefile.common deleted file mode 100644 index f6faeb4..0000000 --- a/Makefile.common +++ /dev/null @@ -1,2 +0,0 @@ -KDE_OPTIONS = qtonly - diff --git a/Makefile.dist b/Makefile.dist deleted file mode 100644 index 21faf23..0000000 --- a/Makefile.dist +++ /dev/null @@ -1,5 +0,0 @@ -default: all - -all: - autoreconf -if - diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 17f9a95..0000000 --- a/configure.ac +++ /dev/null @@ -1,224 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -AC_INIT([encfs], [1.8.2]) -AC_CONFIG_SRCDIR([encfs/encfs.h]) -AC_CONFIG_AUX_DIR([build-aux]) -AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE - -AC_CANONICAL_HOST -AM_CONDITIONAL([DARWIN], - [case $host_os in darwin*) true;; *) false;; esac]) - -dnl without this order in this file, automake will be confused! -dnl -AM_CONFIG_HEADER(config.h) - -dnl If the string "PKG_CHECK_MODULES" appears in the output, -dnl the macro was not substituted, probably because pkg-config is -dnl not installed. Catch that right here instead of creating a -dnl broken configure script. -m4_pattern_forbid([PKG_CHECK_MODULES]) - -dnl This ksh/zsh feature conflicts with `cd blah ; pwd` -unset CDPATH - -AC_LANG_CPLUSPLUS -AC_PROG_CXX - -dnl almost the same like KDE_SET_PEFIX but the path is /usr/local -dnl -unset CDPATH -dnl make /usr/local the default for the installation -AC_PREFIX_DEFAULT(/usr/local) - -AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.18]) - -dnl create only shared libtool-libraries -dnl These can be overridden by command line arguments -AC_ENABLE_SHARED(yes) -AC_ENABLE_STATIC(no) - -AM_CONDITIONAL( BUILD_STATIC, test "x$enable_static" = "xyes" ) -dnl only build either static or shared, not both.. -if test "x$enable_static" = "xyes"; then - enable_shared=no - AC_DEFINE(BUILD_STATIC, [1], [Building static library]) -fi - -AC_PROG_LIBTOOL - -AX_PTHREAD - -AX_BOOST_BASE([1.34]) -AX_BOOST_SERIALIZATION - -dnl Need to include any user specified flags in the tests below, as they might -dnl specify required include directories.. -FUSE_FLAGS="-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26" -CPPFLAGS="$CPPFLAGS $USER_INCLUDES $FUSE_FLAGS -D__STDC_FORMAT_MACROS" -CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS $USER_INCLUDES" -LDFLAGS="$LDFLAGS $PTHREAD_LIBS $USER_LDFLAGS $FUSE_LIBS" - -AX_CXX_COMPILE_STDCXX_11 - -dnl Look for fuse headers. -AX_EXT_HAVE_HEADER(fuse.h, /usr/include/fuse /usr/local/include/fuse \ - /opt/include/fuse /opt/local/include/fuse \ - /usr/include/osxfuse /usr/local/include/osxfuse \ - /opt/local/include/osxfuse) - -dnl Ensure the necessary paths are added to LDPATH -AX_EXT_HAVE_LIB(/usr/lib /usr/local/lib /opt/lib /opt/local/lib, fuse, - fuse_mount, []) -AX_EXT_HAVE_LIB(/usr/lib /usr/local/lib /opt/lib /opt/local/lib, osxfuse, - fuse_mount, []) - -if test "$GXX" = "yes"; then - CXXFLAGS="-W -Wall -Wpointer-arith -Wwrite-strings $CXXFLAGS" - dnl CXXFLAGS="$CXXFLAGS -Wformat=2 -Wconversion" -fi - -if test -z "${DARWIN_TRUE}"; then - dnl Prefer OSXFuse, but fall back to libfuse. - AC_CHECK_LIB(osxfuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -losxfuse"], - AC_CHECK_LIB(fuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -lfuse"], - AC_MSG_ERROR([Unable to find libfuse or libosxfuse.]))) -else - AC_CHECK_LIB(fuse, fuse_new, [FUSE_LIBS="$FUSE_LIBS -lfuse"], - AC_MSG_ERROR([Unable to find libfuse.])) -fi - -# check for a supported FUSE_MAJOR_VERSION. -AC_MSG_CHECKING([For supported FUSE API version]) -AC_RUN_IFELSE([ - AC_LANG_PROGRAM([[#include "fuse.h"]], -[[ - if (FUSE_MAJOR_VERSION < 2) return -1; - if (FUSE_MAJOR_VERSION > 2) return 0; - return FUSE_MINOR_VERSION >= 5 ? 0 : -1; -]])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - AC_MSG_FAILURE([Encfs 1.3 requires FUSE 2.5 or newer.]) - ] -) - -dnl fuse_operations.setxattr was added 2004-03-31 -dnl only enable it if setxattr function is found.. -AC_CHECK_HEADERS([attr/xattr.h sys/xattr.h]) - -dnl xattr functions take additional arguments on some systems (eg Darwin). -AC_CACHE_CHECK([whether xattr interface takes additional options], - smb_attr_cv_xattr_add_opt, [ - old_LIBS=$LIBS - LIBS="$LIBS $ACL_LIBS" - AC_TRY_COMPILE([ - #include - #if HAVE_SYS_XATTR_H - #include - #elif HAVE_ATTR_XATTR_H - #include - #endif - ],[ - getxattr(0, 0, 0, 0, 0, 0); - ], - [smb_attr_cv_xattr_add_opt=yes], - [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS]) -]) -if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then - AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options]) -fi - -dnl Check for valgrind headers.. -AC_ARG_ENABLE(valgrind, - AC_HELP_STRING([--enable-valgrind], - [build with valgrind support.]), - AC_CHECK_HEADERS([valgrind/valgrind.h valgrind/memcheck.h]) - ) - -# allow user option of not using ssl.. -AC_ARG_ENABLE(openssl, - AC_HELP_STRING([--disable-openssl], - [disables openssl library usage.]), - with_openssl=$enableval, with_openssl="yes" ) - -# try checking for openssl using -if test "x$with_openssl" = "xyes"; then - # look for openssl using pkg-config first.. - PKG_CHECK_MODULES(OPENSSL, openssl >= 0.9.7, - with_openssl="yes", with_openssl="old-test") - - # If that fails, try checking via old methods - which isn't as robust when - # it comes to extra include paths, etc.. - if test "x$with_openssl" = "xold-test"; then - AC_CHECK_HEADER(openssl/ssl.h, - AC_CHECK_LIB(ssl,SSL_new, - [with_openssl="yes"])) - OPENSSL_LIBS="-lssl" - fi - - # if we have openssl, then examine available interfaces. - if test "x$with_openssl" = "xyes"; then - AC_DEFINE(HAVE_SSL, [1], [Linking with OpenSSL]) - - # add in the libs just for the test.. - oldflags=$CXXFLAGS - oldlibs=$LIBS - CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS" - LIBS="$LIBS $OPENSSL_LIBS" - AC_CHECK_FUNCS(EVP_aes_128_cbc EVP_aes_192_cbc EVP_aes_256_cbc, - AC_DEFINE(HAVE_EVP_AES, [1], [Have EVP AES interfaces])) - AC_CHECK_FUNCS(EVP_bf_cbc, - AC_DEFINE(HAVE_EVP_BF, [1], [Have EVP Blowfish interfaces])) - AC_CHECK_FUNCS(EVP_CIPHER_CTX_set_padding, - with_opensslevp=yes, - AC_MSG_WARN([New SSL cipher code only enabled for OpenSSL 0.9.7 or later])) - AC_CHECK_FUNCS(HMAC_Init_ex, - AC_DEFINE(HAVE_HMAC_INIT_EX, [1], [Have HMAC_Init_ex function])) - - CXXFLAGS="$oldflags" - LIBS="$oldlibs" - - AC_SUBST(HAVE_EVP_AES) - AC_SUBST(HAVE_EVP_BF) - AC_SUBST(HAVE_HMAC_INIT_EX) - fi -fi -AM_CONDITIONAL( BUILD_OPENSSL, test "x$with_openssl" = "xyes" ) -AM_CONDITIONAL( BUILD_SSLCIPHER, test "x$with_opensslevp" = "xyes" ) -AC_SUBST(HAVE_SSL) - -if test "x$with_openssl" != "xyes"; then - AC_MSG_ERROR( [Encfs requires OpenSSL]) -fi - -# check for RLOG -PKG_CHECK_MODULES(RLOG, librlog >= 1.3, with_rlog="yes", with_rlog="test") - -# manual check for rlog, unless environment variable already set -if test "$with_rlog" = "test" && test "x$RLOG_LIBS" = "x"; then - AC_MSG_WARN([Checking for librlog the hard way]) - AC_CHECK_LIB(rlog, RLogVersion, [RLOG_LIBS="-lrlog"], - [AC_MSG_ERROR([EncFS depends on librlog])]) -fi - -# look for pod2man program for building man pages -AC_PATH_PROG(POD2MAN, pod2man, [no]) -AC_PATH_PROG(POD2HTML, pod2html, [no]) -AM_CONDITIONAL( BUILD_MAN, test "x$POD2MAN" != "xno" ) -AM_CONDITIONAL( BUILD_MANHTML, test "x$POD2HTML" != "xno" ) -AM_CONDITIONAL( BUILD_NLS, test "x$USE_NLS" != "xno" ) - - -AC_CONFIG_FILES([Makefile] \ - [encfs/Makefile] \ - [encfs.spec] \ - [makedist2.sh] \ - [m4/Makefile] \ - [po/Makefile.in] \ - [po/Makefile]) - -AC_OUTPUT - diff --git a/encfs.spec.in b/encfs.spec.in deleted file mode 100644 index bab0b81..0000000 --- a/encfs.spec.in +++ /dev/null @@ -1,207 +0,0 @@ -Name: encfs -Summary: Encrypted pass-thru filesystem for Linux -Version: @VERSION@ -Release: @RELEASE@ -License: GPL -Group: System/Filesystems -Source: %{name}-%{version}-%{release}.tgz -BuildRoot: %{_tmppath}/build-root-%{name} -Packager: Valient Gough -#Distribution: Suse 9.1 -Prefix: /usr -Url: http://pobox.com/~vgough/encfs -Provides: encfs -Provides: encfsctl -Provides: libencfs.1 - -Requires: rlog >= 1.3 -Requires: openssl -Requires: fuse >= 2.2 - -%description -EncFS implements an encrypted filesystem in userspace using FUSE. FUSE -provides a Linux kernel module which allows virtual filesystems to be written -in userspace. EncFS encrypts all data and filenames in the filesystem and -passes access through to the underlying filesystem. Similar to CFS except that -it does not use NFS. - -%changelog -* Fri Nov 11 2005 Valient Gough -- Release 1.2.5 -- Fix race condition when using newer versions of GCC. Fixes problem reported - by Chris at x.nu. -- add encfssh script, thanks to David Rosenstrauch -* Fri Aug 26 2005 Valient Gough -- Release 1.2.4 -- fix segfault if small invalid filenames were encountered in the encrypted - directory, reported by paulgfx. -- try and detect if user tries to mount the filesystem over the top of the - encrypted directory, problem reported by paulgfx. -- environment variable ENCFS5_CONFIG can be used to override the location of - the .encfs5 configuration file. -- add encfsctl 'export' command, patch from Janne Hellsten - -* Tue Apr 19 2005 Valient Gough -- Release 1.2.1 -- add --public mount option -- add --stdinpass option to read password from stdin for scripting -- import latest rosetta translation updates - -* Thu Feb 10 2005 Valient Gough -- Release 1.2.0 -- Fix bug with MAC headers and files > 2GB, reported by Damian Frank -- Fix bug with external password interface which could result in problems - communicating with external password program. Found by Olivier Dournaux. -- Switch to FUSE 2.2 API -- support for FUSE 1.x has been dropped. -- Add support for inode numbering pass-thru (when used 'use_ino' option to - fuse). This allows encoded filesystem to use the same inode numbers as the - underlying filesystem. - -* Wed Jan 12 2005 Valient Gough -- Release 1.1.11 -- add internationalization support. Thanks to lots of contributors, there are - translations for serveral languages. -- added workaround for libfuse mount failure with FUSE 1.4 -- fix compile failure with FUSE 1.4 - -* Mon Nov 8 2004 Valient Gough -- Release 1.1.10 -- fix problems with recursive rename -- fix incorrect error codes from xattr functions - -* Tue Aug 15 2004 Valient Gough -- Release 1.1.9 -- fix another rename bug (affected filesystems with 'paranoia' configuration) - -* Mon Aug 14 2004 Valient Gough -- Release 1.1.8 -- Improve MAC block header processing. - -* Sat Aug 12 2004 Valient Gough -- Release 1.1.7 -- fix bug in truncate() for unopened files. - -* Mon Aug 9 2004 Valient Gough -- Release 1.1.6 -- fix header IV creation when truncate() used to create files. -- add support for IV chaining to old 0.x filesystem support code (useful for - systems with old OpenSSL, like RedHat 7.x). - -* Tue Jul 22 2004 Valient Gough -- Release 1.1.5 - -* Sat Jul 10 2004 Valient Gough -- Release 1.1.4 -- add external password prompt support. - -* Thu Jun 24 2004 Valient Gough -- Release 1.1.3 - -* Fri May 28 2004 Valient Gough -- Release 1.1.2 -- Fix bug affecting filesystems with small empty directories (like XFS) -- Updates to recursive rename code to undo all changes on failure. -- Fix OpenSSL dependency path inclusion in build. - -* Wed May 19 2004 Valient Gough -- Release 1.1.1 -- Fix MAC header memory size allocation error. -- Add file rename-while-open support needed for Evolution. - -* Thu May 13 2004 Valient Gough -- Second release candidate for version 1.1 -- Add support for block mode filename encryption. -- Add support for per-file initialization vectors. -- Add support for directory IV chaining for per-directory initialization - vectors. -- Add support for per-block MAC headers for file contents. -- Backward compatibility support dropped for filesystems created by version - 0.x. Maintains backward compatible support for versions 1.0.x. - -* Sun Apr 4 2004 Valient Gough -- Release 1.0.5 -- Allow truncate call to extend file (only shrinking was supported) - -* Fri Mar 26 2004 Valient Gough -- Release 1.0.4 -- Large speed improvement. -- Add support for FUSE major version 2 API. - -* Thu Mar 18 2004 Valient Gough -- Release 1.0.3 -- Fix bugs in truncation and padding code. - -* Sat Mar 13 2004 Valient Gough -- Release 1.0.2 -- Use pkg-config to check for OpenSSL and RLog build settings -- Add support for '--' argument to encfs to pass arbitrary options to FUSE / - fusermount. -- Add man pages. - -* Tue Mar 2 2004 Valient Gough -- Release 1.0.1 -- Fix problem with using OpenSSL's EVP_BytesToKey function with variable - key length ciphers like Blowfish, as it would only generate 128 bit keys. -- Some configure script changes to make it possible to use --with-extra-include - configure option to pick up any necessary directories for OpenSSL. - -* Fri Feb 27 2004 Valient Gough -- Release 1.0 -- Added some pre-defined configuration options at startup to make filesystem - creation a bit more user friendly. - -* Mon Feb 23 2004 Valient Gough -- Merge development branch to mainline. Source modularized to make it easier - to support different algorithms. -- Added encfsctl program which can show information about an encrypted - directory and can change the user password used to store the volume key. -- Added support for AES and BlowFish with user specified keys and block sizes - (when building with OpenSSL >= 0.9.7). -- Backward compatible with old format, but new filesystems store configuration - information in a new format which is not readable by old encfs versions. - -* Sat Feb 7 2004 Valient Gough -- Improved performance by fixing cache bug which caused cached data to not be - used as often as it could have been. Random seek performance improved by - 600% according to Bonnie++ benchmark. -- Fixed bugs preventing files larger then 2GB. Limit should now be around - 128GB (untested - I don't have that much drive space). > 2GB also requires - recent version of FUSE module (from Feb 6 or later) and an underlying - filesystem which supports large files. -- Release 0.6 - -%prep -rm -rf $RPM_BUILD_ROOT -mkdir $RPM_BUILD_ROOT - -%setup -q - -%build -CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ -./configure --enable-debug=no --prefix=%{prefix} --mandir=%{_mandir} -make SED=/usr/bin/sed -j 2 - -%install -make DESTDIR=$RPM_BUILD_ROOT install-strip - -cd $RPM_BUILD_ROOT - -find . -type d -fprint $RPM_BUILD_DIR/file.list.%{name}.dirs -find . -type f -fprint $RPM_BUILD_DIR/file.list.%{name}.files.tmp -sed '/\/man\//s/$/.gz/g' $RPM_BUILD_DIR/file.list.%{name}.files.tmp > $RPM_BUILD_DIR/file.list.%{name}.files -find . -type l -fprint $RPM_BUILD_DIR/file.list.%{name}.libs -sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' $RPM_BUILD_DIR/file.list.%{name}.dirs > $RPM_BUILD_DIR/file.list.%{name} -sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.files >> $RPM_BUILD_DIR/file.list.%{name} -sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.libs >> $RPM_BUILD_DIR/file.list.%{name} - -%clean -case "$RPM_BUILD_ROOT" in build-root-*) rm -rf $RPM_BUILD_ROOT ;; esac -rm -f $RPM_BUILD_DIR/file.list.%{name} -rm -f $RPM_BUILD_DIR/file.list.%{name}.libs -rm -f $RPM_BUILD_DIR/file.list.%{name}.files -rm -f $RPM_BUILD_DIR/file.list.%{name}.files.tmp -rm -f $RPM_BUILD_DIR/file.list.%{name}.dirs - -%files -f ../file.list.%{name} - -%defattr(-,root,root,0755) diff --git a/encfs/Makefile.am b/encfs/Makefile.am deleted file mode 100644 index 73eca84..0000000 --- a/encfs/Makefile.am +++ /dev/null @@ -1,149 +0,0 @@ - -include $(top_srcdir)/Makefile.common - -ALL_INCLUDES = @RLOG_CFLAGS@ @OPENSSL_CFLAGS@ @BOOST_CPPFLAGS@ -ALL_LDFLAGS = @RLOG_LIBS@ @OPENSSL_LIBS@ @BOOST_LDFLAGS@ -ALL_LDFLAGS += @BOOST_SERIALIZATION_LIB@ - -AM_CXXFLAGS = -DRLOG_COMPONENT="encfs" $(ALL_INCLUDES) -I$(top_srcdir) - -if BUILD_NLS -# define a C macro LOCALEDIR indicating where catalogs will be installed -#localedir = $(datadir)/locale - -AM_CXXFLAGS += -DLOCALEDIR=\"$(localedir)\" -ALL_LDFLAGS += @LIBINTL@ -endif - -lib_LTLIBRARIES = libencfs.la -bin_PROGRAMS = encfs encfsctl -dist_bin_SCRIPTS = encfssh -noinst_PROGRAMS = test makeKey - -if BUILD_MANHTML -all-local: encfs-man.html -else -all-local: -endif - -encfs_LDADD = libencfs.la $(ALL_LDFLAGS) -encfsctl_LDADD = libencfs.la $(ALL_LDFLAGS) -test_LDADD = libencfs.la $(ALL_LDFLAGS) -makeKey_LDADD = libencfs.la $(ALL_LDFLAGS) - -if BUILD_STATIC -encfs_LDFLAGS = -all-static -encfsctl_LDFLAGS = -all-static -test_LDFLAGS = -all-static -makeKey_LDFLAGS = -all-static -endif - -# CURRENT : REVISION : AGE -# +1 : 0 : +1 => new interface that does not break old one -# +1 : 0 : 0 => new interface that breaks old one -# : : 0 => no new interfaces, but breaks old apps -# : +1 : => internal changes, nothing breaks -# -libencfs_la_LDFLAGS = -version-info 6:2:0 -libencfs_la_LIBADD = @RLOG_LIBS@ \ - @OPENSSL_LIBS@ \ - @BOOST_SERIALIZATION_LIB@ - -EXTRASRC = -if BUILD_OPENSSL -if BUILD_SSLCIPHER -EXTRASRC += SSL_Cipher.cpp -endif -endif - -libencfs_la_SOURCES = \ - autosprintf.cpp \ - readpassphrase.cpp \ - base64.cpp \ - ConfigReader.cpp \ - ConfigVar.cpp \ - Context.cpp \ - Cipher.cpp \ - CipherKey.cpp \ - FileIO.cpp \ - RawFileIO.cpp \ - BlockFileIO.cpp \ - CipherFileIO.cpp \ - MACFileIO.cpp \ - NameIO.cpp \ - StreamNameIO.cpp \ - BlockNameIO.cpp \ - NullNameIO.cpp \ - Interface.cpp \ - MemoryPool.cpp \ - NullCipher.cpp \ - DirNode.cpp \ - FileNode.cpp \ - FileUtils.cpp \ - openssl.cpp \ - ${EXTRASRC} - - -encfs_SOURCES = \ - encfs.cpp \ - main.cpp - -test_SOURCES = \ - test.cpp - -makeKey_SOURCES = \ - makeKey.cpp - -encfsctl_SOURCES = \ - encfsctl.cpp - -noinst_HEADERS = \ - base64.h \ - boost-versioning.h \ - BlockFileIO.h \ - BlockNameIO.h \ - CipherFileIO.h \ - Cipher.h \ - CipherKey.h \ - ConfigReader.h \ - ConfigVar.h \ - Context.h \ - DirNode.h \ - encfs.h \ - FileIO.h \ - FileNode.h \ - FileUtils.h \ - FSConfig.h \ - Interface.h \ - i18n.h \ - MACFileIO.h \ - MemoryPool.h \ - Mutex.h \ - NameIO.h \ - NullCipher.h \ - NullNameIO.h \ - openssl.h \ - Range.h \ - RawFileIO.h \ - readpassphrase.h \ - shared_ptr.h \ - SSL_Cipher.h \ - StreamNameIO.h - -man_MANS=encfs.1 encfsctl.1 -EXTRA_DIST = encfs.pod encfsctl.pod encfs.1 encfsctl.1 encfs-man.html - -if BUILD_MAN -SUFFIXES = .1 .pod -# since we have POD2MAN, we can specify how to rebuild encfs.1 if necessary -.pod.1: - @POD2MAN@ --section=1 --release=@VERSION@ --center="Encrypted Filesystem" $< $@ - -CLEANFILES = encfs.1 encfsctl.1 -endif - -if BUILD_MANHTML -encfs-man.html: encfs.pod - @POD2HTML@ encfs.pod > $@ -endif - diff --git a/encfs/docs/Makefile.am b/encfs/docs/Makefile.am deleted file mode 100644 index 271bd41..0000000 --- a/encfs/docs/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -####### kdevelop will overwrite this part!!! (begin)########## - - -####### kdevelop will overwrite this part!!! (end)############ diff --git a/encfs/docs/en/Makefile.am b/encfs/docs/en/Makefile.am deleted file mode 100644 index 271bd41..0000000 --- a/encfs/docs/en/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -####### kdevelop will overwrite this part!!! (begin)########## - - -####### kdevelop will overwrite this part!!! (end)############ diff --git a/m4/Makefile.am b/m4/Makefile.am deleted file mode 100644 index 0bf0d36..0000000 --- a/m4/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -EXTRA_DIST = $(top_srcdir)/*.m4 - -#\ -# ax_pthread.m4 intl.m4 lib-ld.m4 ltsugar.m4 size_max.m4 \ -# codeset.m4 intldir.m4 lib-link.m4 ltversion.m4 stdint_h.m4 \ -# gettext.m4 intlmacosx.m4 lib-prefix.m4 lt~obsolete.m4 uintmax_t.m4 \ -# glibc2.m4 intmax.m4 libtool.m4 nls.m4 visibility.m4 \ -# glibc21.m4 inttypes-pri.m4 lock.m4 po.m4 wchar_t.m4 \ -# iconv.m4 inttypes_h.m4 longlong.m4 printf-posix.m4 wint_t.m4 \ -# intdiv0.m4 lcmessage.m4 ltoptions.m4 progtest.m4 xsize.m4 diff --git a/m4/ax_boost_base.m4 b/m4/ax_boost_base.m4 deleted file mode 100644 index c675f12..0000000 --- a/m4/ax_boost_base.m4 +++ /dev/null @@ -1,266 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_boost_base.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# DESCRIPTION -# -# Test for the Boost C++ libraries of a particular version (or newer) -# -# If no path to the installed boost library is given the macro searchs -# under /usr, /usr/local, /opt and /opt/local and evaluates the -# $BOOST_ROOT environment variable. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) -# -# And sets: -# -# HAVE_BOOST -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# Copyright (c) 2009 Peter Adolphs -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 22 - -AC_DEFUN([AX_BOOST_BASE], -[ -AC_ARG_WITH([boost], - [AS_HELP_STRING([--with-boost@<:@=ARG@:>@], - [use Boost library from a standard location (ARG=yes), - from the specified location (ARG=), - or disable it (ARG=no) - @<:@ARG=yes@:>@ ])], - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ac_boost_path="" - else - want_boost="yes" - ac_boost_path="$withval" - fi - ], - [want_boost="yes"]) - - -AC_ARG_WITH([boost-libdir], - AS_HELP_STRING([--with-boost-libdir=LIB_DIR], - [Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]), - [ - if test -d "$withval" - then - ac_boost_lib_path="$withval" - else - AC_MSG_ERROR(--with-boost-libdir expected directory name) - fi - ], - [ac_boost_lib_path=""] -) - -if test "x$want_boost" = "xyes"; then - boost_lib_version_req=ifelse([$1], ,1.20.0,$1) - boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` - boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` - boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` - boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` - if test "x$boost_lib_version_req_sub_minor" = "x" ; then - boost_lib_version_req_sub_minor="0" - fi - WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` - AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) - succeeded=no - - dnl On 64-bit systems check for system libraries in both lib64 and lib. - dnl The former is specified by FHS, but e.g. Debian does not adhere to - dnl this (as it rises problems for generic multi-arch support). - dnl The last entry in the list is chosen by default when no libraries - dnl are found, e.g. when only header-only libraries are installed! - libsubdirs="lib" - ax_arch=`uname -m` - case $ax_arch in - x86_64|ppc64|s390x|sparc64|aarch64) - libsubdirs="lib64 lib lib64" - ;; - esac - - dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give - dnl them priority over the other paths since, if libs are found there, they - dnl are almost assuredly the ones desired. - AC_REQUIRE([AC_CANONICAL_HOST]) - libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" - - dnl first we check the system location for boost libraries - dnl this location ist chosen if boost libraries are installed with the --layout=system option - dnl or if you install boost with RPM - if test "$ac_boost_path" != ""; then - BOOST_CPPFLAGS="-I$ac_boost_path/include" - for ac_boost_path_tmp in $libsubdirs; do - if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then - BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp" - break - fi - done - elif test "$cross_compiling" != yes; then - for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do - if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then - for libsubdir in $libsubdirs ; do - if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir" - BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" - break; - fi - done - fi - - dnl overwrite ld flags if we have required special directory with - dnl --with-boost-libdir parameter - if test "$ac_boost_lib_path" != ""; then - BOOST_LDFLAGS="-L$ac_boost_lib_path" - fi - - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_REQUIRE([AC_PROG_CXX]) - AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - @%:@include - ]], [[ - #if BOOST_VERSION >= $WANT_BOOST_VERSION - // Everything is okay - #else - # error Boost version is too old - #endif - ]])],[ - AC_MSG_RESULT(yes) - succeeded=yes - found_system=yes - ],[ - ]) - AC_LANG_POP([C++]) - - - - dnl if we found no boost with system layout we search for boost libraries - dnl built and installed without the --layout=system option or for a staged(not installed) version - if test "x$succeeded" != "xyes"; then - _version=0 - if test "$ac_boost_path" != ""; then - if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then - for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do - _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` - V_CHECK=`expr $_version_tmp \> $_version` - if test "$V_CHECK" = "1" ; then - _version=$_version_tmp - fi - VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` - BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" - done - fi - else - if test "$cross_compiling" != yes; then - for ac_boost_path in /usr /usr/local /opt /opt/local ; do - if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then - for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do - _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` - V_CHECK=`expr $_version_tmp \> $_version` - if test "$V_CHECK" = "1" ; then - _version=$_version_tmp - best_path=$ac_boost_path - fi - done - fi - done - - VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` - BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" - if test "$ac_boost_lib_path" = ""; then - for libsubdir in $libsubdirs ; do - if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - BOOST_LDFLAGS="-L$best_path/$libsubdir" - fi - fi - - if test "x$BOOST_ROOT" != "x"; then - for libsubdir in $libsubdirs ; do - if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi - done - if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then - version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` - stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` - stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` - V_CHECK=`expr $stage_version_shorten \>\= $_version` - if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then - AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) - BOOST_CPPFLAGS="-I$BOOST_ROOT" - BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" - fi - fi - fi - fi - - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_LANG_PUSH(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - @%:@include - ]], [[ - #if BOOST_VERSION >= $WANT_BOOST_VERSION - // Everything is okay - #else - # error Boost version is too old - #endif - ]])],[ - AC_MSG_RESULT(yes) - succeeded=yes - found_system=yes - ],[ - ]) - AC_LANG_POP([C++]) - fi - - if test "$succeeded" != "yes" ; then - if test "$_version" = "0" ; then - AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) - else - AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) - fi - # execute ACTION-IF-NOT-FOUND (if present): - ifelse([$3], , :, [$3]) - else - AC_SUBST(BOOST_CPPFLAGS) - AC_SUBST(BOOST_LDFLAGS) - AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) - # execute ACTION-IF-FOUND (if present): - ifelse([$2], , :, [$2]) - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" -fi - -]) diff --git a/m4/ax_boost_serialization.m4 b/m4/ax_boost_serialization.m4 deleted file mode 100644 index 37f3294..0000000 --- a/m4/ax_boost_serialization.m4 +++ /dev/null @@ -1,117 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_boost_serialization.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_SERIALIZATION -# -# DESCRIPTION -# -# Test for Serialization library from the Boost C++ libraries. The macro -# requires a preceding call to AX_BOOST_BASE. Further documentation is -# available at . -# -# This macro calls: -# -# AC_SUBST(BOOST_SERIALIZATION_LIB) -# -# And sets: -# -# HAVE_BOOST_SERIALIZATION -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 21 - -AC_DEFUN([AX_BOOST_SERIALIZATION], -[ - AC_ARG_WITH([boost-serialization], - AS_HELP_STRING([--with-boost-serialization@<:@=special-lib@:>@], - [use the Serialization library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-serialization=boost_serialization-gcc-mt-d-1_33_1 ]), - [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_serialization_lib="" - else - want_boost="yes" - ax_boost_user_serialization_lib="$withval" - fi - ], - [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - AC_MSG_WARN(BOOST_CPPFLAGS $BOOST_CPPFLAGS) - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Serialization library is available, - ax_cv_boost_serialization, - [AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include - @%:@include - @%:@include - ]], - [[std::ofstream ofs("filename"); - boost::archive::text_oarchive oa(ofs); - return 0; - ]])], - ax_cv_boost_serialization=yes, ax_cv_boost_serialization=no) - AC_LANG_POP([C++]) - ]) - if test "x$ax_cv_boost_serialization" = "xyes"; then - AC_DEFINE(HAVE_BOOST_SERIALIZATION,,[define if the Boost::Serialization library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - if test "x$ax_boost_user_serialization_lib" = "x"; then - for libextension in `ls $BOOSTLIBDIR/libboost_serialization*.so* $BOOSTLIBDIR/libboost_serialization*.dylib* $BOOSTLIBDIR/libboost_serialization*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_serialization.*\)\.so.*$;\1;' -e 's;^lib\(boost_serialization.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_serialization.*\)\.a*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], - [link_serialization="no"]) - done - if test "x$link_serialization" != "xyes"; then - for libextension in `ls $BOOSTLIBDIR/boost_serialization*.dll* $BOOSTLIBDIR/boost_serialization*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_serialization.*\)\.dll.*$;\1;' -e 's;^\(boost_serialization.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], - [link_serialization="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_serialization_lib boost_serialization-$ax_boost_user_serialization_lib; do - AC_CHECK_LIB($ax_lib, main, - [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], - [link_serialization="no"]) - done - - fi - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - if test "x$link_serialization" != "xyes"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 deleted file mode 100644 index 86ff454..0000000 --- a/m4/ax_cxx_compile_stdcxx_11.m4 +++ /dev/null @@ -1,138 +0,0 @@ - ============================================================================ -# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html -# ============================================================================ -# -# SYNOPSIS -# -# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional]) -# -# DESCRIPTION -# -# Check for baseline language coverage in the compiler for the C++11 -# standard; if necessary, add switches to CXXFLAGS to enable support. -# -# The first argument, if specified, indicates whether you insist on an -# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -# -std=c++11). If neither is specified, you get whatever works, with -# preference for an extended mode. -# -# The second argument, if specified 'mandatory' or if left unspecified, -# indicates that baseline C++11 support is required and that the macro -# should error out if no mode with that support is found. If specified -# 'optional', then configuration proceeds regardless, after defining -# HAVE_CXX11 if and only if a supporting mode is found. -# -# LICENSE -# -# Copyright (c) 2008 Benjamin Kosnik -# Copyright (c) 2012 Zack Weinberg -# Copyright (c) 2013 Roy Stogner -# Copyright (c) 2014 Alexey Sokolov -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 4 - -m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [[ - // Checks that standard libraries are available. - #include - #include - #include - - using namespace std::placeholders; - - bool testFn(std::function op) { - return op(42); - } - - bool lenCheck(const std::shared_ptr &str, int len) { - return str->size() > len; - } - - void check() { - std::shared_ptr str(new std::string("hello world")); - - testFn(std::bind(lenCheck, str, _1)); - } -]]) - -AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl - m4_if([$1], [], [], - [$1], [ext], [], - [$1], [noext], [], - [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl - m4_if([$2], [], [ax_cxx_compile_cxx11_required=true], - [$2], [mandatory], [ax_cxx_compile_cxx11_required=true], - [$2], [optional], [ax_cxx_compile_cxx11_required=false], - [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])]) - AC_LANG_PUSH([C++])dnl - ac_success=no - AC_CACHE_CHECK(whether $CXX supports C++11 features by default, - ax_cv_cxx_compile_cxx11, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [ax_cv_cxx_compile_cxx11=yes], - [ax_cv_cxx_compile_cxx11=no])]) - if test x$ax_cv_cxx_compile_cxx11 = xyes; then - ac_success=yes - fi - - m4_if([$1], [noext], [], [dnl - if test x$ac_success = xno; then - for switch in -std=gnu++11 -std=gnu++0x; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x\$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) - - m4_if([$1], [ext], [], [dnl - if test x$ac_success = xno; then - for switch in -std=c++11 -std=c++0x; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x\$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) - AC_LANG_POP([C++]) - if test x$ax_cxx_compile_cxx11_required = xtrue; then - if test x$ac_success = xno; then - AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.]) - fi - else - if test x$ac_success = xno; then - HAVE_CXX11=0 - AC_MSG_NOTICE([No compiler with C++11 support was found]) - else - HAVE_CXX11=1 - AC_DEFINE(HAVE_CXX11,1, - [define if the compiler supports basic C++11 syntax]) - fi - - AC_SUBST(HAVE_CXX11) - fi -]) diff --git a/m4/ax_ext_check_header.m4 b/m4/ax_ext_check_header.m4 deleted file mode 100644 index af52745..0000000 --- a/m4/ax_ext_check_header.m4 +++ /dev/null @@ -1,58 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_ext_check_header.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_EXT_CHECK_HEADER(
, ). -# -# DESCRIPTION -# -# Check for
with -I for each path in if need be. -# The first sucecssful path is chosen (eg if you say -# AX_EXT_CHECK_HEADER(foo.h, bar baz qux) and -Ibaz works then -Iqux will -# not be tested. -# -# Any -I flags that locate a header are added to CFLAGS and CPPFLAGS. AS -# with AC_CHECK_HEADERS it causes HAVE_
_H to be defined as 1. -# -# Example: -# -# AX_EXT_HAVE_HEADER(openssl/rsa.h, /usr/local/include /usr/local/ssl/include /usr/local/openssl/include) -# -# LICENSE -# -# Copyright (c) 2008 Duncan Simpson -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 7 - -AC_DEFUN([AX_EXT_HAVE_HEADER], -[AC_LANG_PUSH(C) - AC_CHECK_HEADER($1, [$3 got="yes"], [$4 got="no"], $5) - hdr=`echo $1 | $as_tr_sh` - for dir in $2; do - if test "x${got}" = "xno"; then - ext_hashdr_cvdir=`echo $dir | $as_tr_sh` - AC_CACHE_CHECK([for $1 library with -I$dir], - [ext_cv${ext_hashdr_cvdir}_hashdr_${hdr}], - [ext_have_hdr_save_cflags=${CFLAGS} - CFLAGS="${CFLAGS} -I${dir}" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([#include <$1>])], - [got="yes"; eval "ext_cv${ext_hashdr_cvdir}_hashdr_${hdr}"="yes"], - [got="no"; eval "ext_cv${ext_hashdr_cvdir}_hashdr_${hdr}"="no"]) - CFLAGS=$ext_have_hdr_save_cflags]) - if eval `echo 'test x${'ext_cv${ext_hashdr_cvdir}_hashdr_${hdr}'}' = "xyes"`; then - CFLAGS="${CFLAGS} -I${dir}" - CPPFLAGS="${CPPFLAGS} -I${dir}" - got="yes"; - hdr=`echo $1 | $as_tr_cpp` - AC_DEFINE_UNQUOTED(HAVE_${hdr}, 1, - [Define this if you have the $1 header]) - fi; fi; done -AC_LANG_POP]) diff --git a/m4/ax_ext_have_lib.m4 b/m4/ax_ext_have_lib.m4 deleted file mode 100644 index 4b84ba0..0000000 --- a/m4/ax_ext_have_lib.m4 +++ /dev/null @@ -1,72 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_ext_have_lib.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_EXT_HAVE_LIB(, , , ) -# -# DESCRIPTION -# -# AX_EXT_HAVE_LIB is identical to AC_SEARCH_LIBS with the exception that -# will add -L when looking, and use a different variable for -# each directory. -# -# Any required -L flags are added to LDFLAGS and located -# libraies are added to LIBS -# -# Some libraries are unlinkable without other extra libraries, which can -# be specified in the 4th argument. The mysql client library needs -lz, -# for example. -# -# Example: -# -# AX_EXT_HAVE_LIB(/lib /usr/lib /usr/local/lib /usr/lib/mysql /usr/local/mysql/lib, mysqlclient, mysql_init, [-lz]) -# -# which finds the mysql client library if succeds system when it tries -# with -L/usr/lib/mysql then it adds -lmysqlclient to LIBS and -# -L/usr/lib/mysql to LDFLAGS. -# -# The test itself is based on the autoconf 2.53 version of AC_SEARCH_LIBS. -# -# LICENSE -# -# Copyright (c) 2008 Duncan Simpson -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 9 - -AC_DEFUN([AX_EXT_HAVE_LIB], -[ -new_ldflags=${LDFLAGS} -new_libs=$LIBS -AC_CHECK_LIB([$2], $3, new_libs="-l$2"; ext_lib_found="yes", ext_lib_found="no") -for dir in $1 -do -if test $ext_lib_found = no -then -ext_haslib_cvdir=`echo $dir | $as_tr_sh` -AC_CACHE_CHECK([for $2 library with -L$dir], [ext_cv${ext_haslib_cvdir}_haslib_$2], -[ext_func_search_save_LIBS=$LIBS -ext_func_save_ldflags=${LDFLAGS} -LIBS="-l$2 $4 ${ext_func_search_save_LIBS}" -LDFLAGS="-L$dir ${ext_func_save_ldflags}" -AC_TRY_LINK_FUNC([$3], [eval "ext_cv${ext_haslib_cvdir}_haslib_$2"="yes"], -[eval "ext_cv${ext_haslib_cvdir}_haslib_$2"="no"]) -LIBS=$ext_func_search_save_LIBS -LDFLAGS=$ext_func_save_ldflags -]) -if eval `echo 'test x${'ext_cv${ext_haslib_cvdir}_haslib_$2'}' = "xyes"`; then -new_libs="-l$2" -new_ldflags="-L${dir} ${new_ldflags}" -ext_lib_found="yes" -fi -fi -done -LIBS="$new_libs ${LIBS}" -LDFLAGS=$new_ldflags -]) diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 deleted file mode 100644 index e20a388..0000000 --- a/m4/ax_pthread.m4 +++ /dev/null @@ -1,309 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_pthread.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro figures out how to build C programs using POSIX threads. It -# sets the PTHREAD_LIBS output variable to the threads library and linker -# flags, and the PTHREAD_CFLAGS output variable to any special C compiler -# flags that are needed. (The user can also force certain compiler -# flags/libs to be tested by setting these environment variables.) -# -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) -# -# NOTE: You are assumed to not only compile your program with these flags, -# but also link it with them as well. e.g. you should link with -# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS -# -# If you are only building threads programs, you may wish to use these -# variables in your default LIBS, CFLAGS, and CC: -# -# LIBS="$PTHREAD_LIBS $LIBS" -# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -# CC="$PTHREAD_CC" -# -# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name -# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). -# -# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the -# PTHREAD_PRIO_INHERIT symbol is defined when compiling with -# PTHREAD_CFLAGS. -# -# ACTION-IF-FOUND is a list of shell commands to run if a threads library -# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it -# is not found. If ACTION-IF-FOUND is not specified, the default action -# will define HAVE_PTHREAD. -# -# Please let the authors know if this macro fails on any platform, or if -# you have any other suggestions or comments. This macro was based on work -# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help -# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by -# Alejandro Forero Cuervo to the autoconf macro repository. We are also -# grateful for the helpful feedback of numerous users. -# -# Updated for Autoconf 2.68 by Daniel Richard G. -# -# LICENSE -# -# Copyright (c) 2008 Steven G. Johnson -# Copyright (c) 2011 Daniel Richard G. -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation, either version 3 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 17 - -AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) -AC_DEFUN([AX_PTHREAD], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_PUSH([C]) -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) - AC_MSG_RESULT($ax_pthread_ok) - if test x"$ax_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case "${host_cpu}-${host_os}" in - *solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: - - ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" - ;; - - *-darwin*) - ax_pthread_flags="-pthread $ax_pthread_flags" - ;; -esac - -if test x"$ax_pthread_ok" = xno; then -for flag in $ax_pthread_flags; do - - case $flag in - none) - AC_MSG_CHECKING([whether pthreads work without any flags]) - ;; - - -*) - AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" - ;; - - pthread-config) - AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) - if test x"$ax_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" - ;; - esac - - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include - static void routine(void *a) { a = 0; } - static void *start_routine(void *a) { return a; }], - [pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */])], - [ax_pthread_ok=yes], - []) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - AC_MSG_RESULT($ax_pthread_ok) - if test "x$ax_pthread_ok" = xyes; then - break; - fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$ax_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], - [int attr = $attr; return attr /* ; */])], - [attr_name=$attr; break], - []) - done - AC_MSG_RESULT($attr_name) - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - fi - - AC_MSG_CHECKING([if more special flags are required for pthreads]) - flag=no - case "${host_cpu}-${host_os}" in - *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; - *-osf* | *-hpux*) flag="-D_REENTRANT";; - *solaris*) - if test "$GCC" = "yes"; then - flag="-D_REENTRANT" - else - flag="-mt -D_REENTRANT" - fi - ;; - esac - AC_MSG_RESULT(${flag}) - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi - - AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - ax_cv_PTHREAD_PRIO_INHERIT, [ - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[#include ]], [[int i = PTHREAD_PRIO_INHERIT;]])], - [ax_cv_PTHREAD_PRIO_INHERIT=yes], - [ax_cv_PTHREAD_PRIO_INHERIT=no]) - ]) - AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], - AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])) - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) - else - PTHREAD_CC=$CC - fi -else - PTHREAD_CC="$CC" -fi - -AC_SUBST(PTHREAD_LIBS) -AC_SUBST(PTHREAD_CFLAGS) -AC_SUBST(PTHREAD_CC) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_pthread_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) - : -else - ax_pthread_ok=no - $2 -fi -AC_LANG_POP -])dnl AX_PTHREAD diff --git a/makedist.sh b/makedist.sh deleted file mode 100644 index fefded9..0000000 --- a/makedist.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -rm m4/[c-z]*.m4 - -echo Creating autoconf scripts... -sh ./reconfig.sh - -echo Configuring... -./configure - -sh ./makedist2.sh - diff --git a/makedist2.sh.in b/makedist2.sh.in deleted file mode 100644 index 8034705..0000000 --- a/makedist2.sh.in +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# create distribution file -make dist - -# create tar archive and signature -tarArchive=@PACKAGE@-@VERSION@.tgz -mv @PACKAGE@-@VERSION@.tar.gz $tarArchive -# let the user know why they're being asked for a passpharse -echo "Signing tar archive - enter GPG password"; -gpg --detach-sign -a $tarArchive - -# create rpms -#cp $tarArchive /usr/src/packages/SOURCES -#echo "Building signed RPM files - enter GPG password"; -#rpmbuild -ba --sign @PACKAGE@.spec - -# move all distribution files to dist directory -mkdir dist -mv $tarArchive dist -mv $tarArchive.asc dist -#mv /usr/src/packages/SRPMS/@PACKAGE@-@VERSION@-@RELEASE@.src.rpm dist -#mv /usr/src/packages/RPMS/i586/@PACKAGE@-@VERSION@-@RELEASE@.i586.rpm dist - -# cleanup -#rm /usr/src/packages/SOURCES/$tarArchive - diff --git a/reconfig.sh b/reconfig.sh deleted file mode 100644 index 9f86811..0000000 --- a/reconfig.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -autoreconf -i - diff --git a/subdirs b/subdirs deleted file mode 100644 index 6897267..0000000 --- a/subdirs +++ /dev/null @@ -1,3 +0,0 @@ -admin -autom4te.cache -encfs From 03f0211fea7cd86e73755b8d64fb41297873a607 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sun, 14 Jun 2015 08:18:30 -0700 Subject: [PATCH 03/11] add skeleton drone.yml file --- .drone.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..54ba908 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,6 @@ +image: encfs_worker +script: + - sh devmode + - cd build + - make + - ./checkops From 772054e7cf61f3c9223717003ac0ddd60d63a685 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sun, 14 Jun 2015 09:35:28 -0700 Subject: [PATCH 04/11] change readpassphrase include --- encfs/readpassphrase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/encfs/readpassphrase.cpp b/encfs/readpassphrase.cpp index af316dc..a354f97 100644 --- a/encfs/readpassphrase.cpp +++ b/encfs/readpassphrase.cpp @@ -49,7 +49,7 @@ static const char rcsid[] = #include #include -#include +#include "readpassphrase.h" #ifdef TCSASOFT #define _T_FLUSH (TCSAFLUSH | TCSASOFT) From e74fec792f12228343bea2bcf87913f1df7da781 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sat, 13 Jun 2015 23:07:47 -0700 Subject: [PATCH 05/11] replace travis badge with drone badge from custom drone deployment --- .travis.yml | 16 ---------------- README.md | 2 +- 2 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 475e334..0000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: cpp - -compiler: - - gcc - - clang - -before_install: - - sudo apt-get update -qq - - sudo apt-get install -qq cmake libfuse-dev libboost-serialization-dev - librlog-dev - -script: - - sh devmode - - cd build - - make - - ./checkops diff --git a/README.md b/README.md index 9f37417..47fa4f4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # EncFS - an Encrypted Filesystem -[![Build Status](https://travis-ci.org/vgough/encfs.svg)](https://travis-ci.org/vgough/encfs) +[![Build Status](http://104.236.164.205:8080/api/badge/github.com/vgough/encfs/status.svg?branch=cmake)](http://104.236.164.205:8080/github.com/vgough/encfs) ## About From 2ec85a6638b126f592c5d2c2c4f88d26cedb73b4 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 20:25:29 -0700 Subject: [PATCH 06/11] add drone-config files, for setting up a standalone drone instance --- drone-config/Dockerfile | 26 ++++++++++++++++++++++ drone-config/run.sh | 6 +++++ drone-config/update.sh | 1 + drone-config/worker/Dockerfile | 40 ++++++++++++++++++++++++++++++++++ drone-config/worker/update.sh | 1 + 5 files changed, 74 insertions(+) create mode 100644 drone-config/Dockerfile create mode 100644 drone-config/run.sh create mode 100644 drone-config/update.sh create mode 100644 drone-config/worker/Dockerfile create mode 100644 drone-config/worker/update.sh diff --git a/drone-config/Dockerfile b/drone-config/Dockerfile new file mode 100644 index 0000000..90129e3 --- /dev/null +++ b/drone-config/Dockerfile @@ -0,0 +1,26 @@ +# Pull from base Ubuntu image +FROM ubuntu + +# Do system updates and install dependencies +RUN apt-get update +RUN apt-get -y upgrade +RUN sudo apt-get -y install git wget autopoint libfuse-dev libboost-serialization-dev +RUN apt-get clean + +# Download Drone.io +RUN wget http://downloads.drone.io/master/drone.deb +RUN dpkg -i drone.deb + +# Expose the Drone.io port +EXPOSE 8080 + +ENV DRONE_SERVER_PORT 0.0.0.0:8080 +ENV DRONE_DATABASE_DATASOURCE /var/lib/drone/drone.sqlite + +# Define our GitHub oAuth keys below +ENV DRONE_GITHUB_CLIENT +ENV DRONE_GITHUB_SECRET + +# The command we'll be running when the container starts +CMD /usr/local/bin/droned + diff --git a/drone-config/run.sh b/drone-config/run.sh new file mode 100644 index 0000000..3f036f3 --- /dev/null +++ b/drone-config/run.sh @@ -0,0 +1,6 @@ +docker run -d --name="drone-ci" \ + -p 8080:8080 \ + -v /var/lib/drone/ \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /home/core/droneio/drone.sqlite:/var/lib/drone/drone.sqlite \ + encfs_drone diff --git a/drone-config/update.sh b/drone-config/update.sh new file mode 100644 index 0000000..fd25822 --- /dev/null +++ b/drone-config/update.sh @@ -0,0 +1 @@ +docker build -t encfs_drone . diff --git a/drone-config/worker/Dockerfile b/drone-config/worker/Dockerfile new file mode 100644 index 0000000..159d5ed --- /dev/null +++ b/drone-config/worker/Dockerfile @@ -0,0 +1,40 @@ +FROM ubuntu:14.04 +MAINTAINER vgough + +# update and install dependencies +RUN apt-get update \ + && apt-get install -y \ + software-properties-common \ + wget \ + make \ + && echo 'deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.4 main' >> /etc/apt/sources.list \ + && wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - \ + && add-apt-repository -y ppa:ubuntu-toolchain-r/test \ + && apt-get update \ + && apt-get install -y \ + gcc-4.9 g++-4.9 gcc-4.9-base \ + clang-3.4 lldb-3.4 \ + && apt-get clean \ + && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100 \ + && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100 + +# build cmake +RUN wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz \ + && tar -xvf cmake-3.2.2.tar.gz +WORKDIR cmake-3.2.2 +RUN ./bootstrap \ + && make \ + && make install + + +RUN apt-get -y upgrade \ + && apt-get -y install \ + git \ + libfuse-dev \ + libboost-serialization-dev \ + libssl-dev \ + librlog-dev \ + gettext \ + libgettextpo-dev \ + && apt-get clean + diff --git a/drone-config/worker/update.sh b/drone-config/worker/update.sh new file mode 100644 index 0000000..c24ea00 --- /dev/null +++ b/drone-config/worker/update.sh @@ -0,0 +1 @@ +docker build -t encfs_worker . From 0fc7bbe9922889b6e74ec9afee148aa527f7cf27 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 20:36:26 -0700 Subject: [PATCH 07/11] add po file compilation --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b107388..81a1529 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,3 +145,14 @@ endif (POD2MAN) install (TARGETS encfs DESTINATION bin) install (FILES ${CMAKE_SOURCE_DIR}/encfs/encssh DESTINATION bin) + +# Translations +if (GETTEXT_FOUND) + file(GLOB po_files "po/*.po") + foreach(pofile ${po_files}) + get_filename_component(lang ${pofile} NAME_WE) + #message("-- Found gettext PO file for ${lang}: ${pofile}") + + gettext_process_po_files(${lang} ALL PO_FILES ${pofile}) + endforeach() +endif (GETTEXT_FOUND) From 377c9ec73fc3db5c0db264491cccb72d88ec5b75 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 21:00:45 -0700 Subject: [PATCH 08/11] change INSTALL docs to use cmake --- INSTALL.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index de010ad..342f804 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,7 +1,7 @@ This document provides generic information for compiling EncFS. If you are looking for specific instructions for your distribution, -take a look at the page +take a look at the page **[Installing EncFS](https://github.com/vgough/encfs/wiki/Installing-Encfs)** in the wiki. @@ -18,7 +18,7 @@ Steps to build EncFS: make Optional, but strongly recommended, is running the test suite -to verfify that the generated binaries work as expected +to verify that the generated binaries work as expected (runtime: 20 seconds) make test @@ -29,8 +29,9 @@ the encfs directory. You can install to in a system directory via make install . If the default path (`/usr/local`) is not where you want things -installed, then use the `--prefix` option to `configure` to specify the -install prefix. +installed, then set the CMAKE_INSTALL_PREFIX option when running cmake. Eg: + + cmake .. -DCMAKE_INSTALL_PREFIX=/opt/local Encfs and encfsctl can also be installed by hand. They need no special permissions. You may also want the man pages encfs.1 and encfsctl.1. @@ -45,10 +46,9 @@ EncFS depends on a number of libraries: Compiling on Debian and Ubuntu ============================== -We use Travis CI to automatically build-test every commit: +We use Drone.io to automatically build and test every commit. See the README.md +file for current build status. -[![Build Status](https://travis-ci.org/vgough/encfs.svg)](https://travis-ci.org/vgough/encfs) - -The [Travis configuration file .travis.yml](.travis.yml) therefore +The [Drone configuration file .drone.yml](.drone.yml) therefore always contains up-to-date instructions to build EncFS on Ubuntu -(Travis uses Ubuntu build machines). +(Drone is configured to use a Ubuntu build machines). From 322da93252889d9aaba9d9af79ed9194409e2ccd Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 21:10:48 -0700 Subject: [PATCH 09/11] change library name back to encfs --- CMakeLists.txt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 81a1529..cd5fd06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,10 +103,10 @@ set(SOURCE_FILES encfs/SSL_Cipher.cpp encfs/StreamNameIO.cpp ) -add_library(encfs1 SHARED ${SOURCE_FILES}) -set_property(TARGET encfs1 PROPERTY VERSION ${ENCFS_VERSION}) -set_property(TARGET encfs1 PROPERTY SOVERSION ${ENCFS_SOVERSION}) -target_link_libraries(encfs1 +add_library(encfs SHARED ${SOURCE_FILES}) +set_property(TARGET encfs PROPERTY VERSION ${ENCFS_VERSION}) +set_property(TARGET encfs PROPERTY SOVERSION ${ENCFS_SOVERSION}) +target_link_libraries(encfs ${FUSE_LIBRARIES} ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} @@ -114,17 +114,18 @@ target_link_libraries(encfs1 ${CMAKE_THREAD_LIBS_INIT} ) -add_executable (encfs encfs/main.cpp) -target_link_libraries (encfs encfs1) +add_executable (encfs-bin encfs/main.cpp) +target_link_libraries (encfs-bin encfs) +set_target_properties (encfs-bin PROPERTIES OUTPUT_NAME "encfs") add_executable (encfsctl encfs/encfsctl.cpp) -target_link_libraries (encfsctl encfs1) +target_link_libraries (encfsctl encfs) add_executable (makekey encfs/makeKey.cpp) -target_link_libraries (makekey encfs1) +target_link_libraries (makekey encfs) add_executable (checkops encfs/test.cpp) -target_link_libraries (checkops encfs1) +target_link_libraries (checkops encfs) # Reference all headers, to make certain IDEs happy. file (GLOB_RECURSE all_headers ${CMAKE_SOURCE_DIR}/*.h) From f04381fe17afec8f69fc1068489ef9c4b43b99e8 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 21:16:00 -0700 Subject: [PATCH 10/11] move install commands closer to definitions --- CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd5fd06..d598584 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,9 +117,11 @@ target_link_libraries(encfs add_executable (encfs-bin encfs/main.cpp) target_link_libraries (encfs-bin encfs) set_target_properties (encfs-bin PROPERTIES OUTPUT_NAME "encfs") +install (TARGETS encfs DESTINATION bin) add_executable (encfsctl encfs/encfsctl.cpp) target_link_libraries (encfsctl encfs) +install (TARGETS encfsctl DESTINATION bin) add_executable (makekey encfs/makeKey.cpp) target_link_libraries (makekey encfs) @@ -127,6 +129,8 @@ target_link_libraries (makekey encfs) add_executable (checkops encfs/test.cpp) target_link_libraries (checkops encfs) +install (FILES ${CMAKE_SOURCE_DIR}/encfs/encssh DESTINATION bin) + # Reference all headers, to make certain IDEs happy. file (GLOB_RECURSE all_headers ${CMAKE_SOURCE_DIR}/*.h) add_custom_target (all_placeholder SOURCES ${all_headers}) @@ -144,9 +148,6 @@ if (POD2MAN) DESTINATION share/man/man1) endif (POD2MAN) -install (TARGETS encfs DESTINATION bin) -install (FILES ${CMAKE_SOURCE_DIR}/encfs/encssh DESTINATION bin) - # Translations if (GETTEXT_FOUND) file(GLOB po_files "po/*.po") From 12e8efb2cdf573d67b18cd2c27f90731627d0007 Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Mon, 15 Jun 2015 23:11:50 -0700 Subject: [PATCH 11/11] add test target --- .drone.yml | 2 +- CMakeLists.txt | 15 +++++++++++++++ tests/normal.t.pl | 3 --- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 54ba908..37a7e67 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,4 +3,4 @@ script: - sh devmode - cd build - make - - ./checkops + - make test diff --git a/CMakeLists.txt b/CMakeLists.txt index d598584..aa38da9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,3 +158,18 @@ if (GETTEXT_FOUND) gettext_process_po_files(${lang} ALL PO_FILES ${pofile}) endforeach() endif (GETTEXT_FOUND) + +# Tests +enable_testing() +add_test (NAME checkops + COMMAND checkops) + +find_program (PERL_PROGRAM perl) +if (PERL_PROGRAM) + file(GLOB pl_test_files "tests/*.t.pl") + #add_test (NAME scriptedtests + # COMMAND ${PERL_PROGRAM} -I ${CMAKE_SOURCE_DIR} + # -MTest::Harness + # -e "$$Test::Harness::verbose=1; runtests @ARGV;" + # ${pl_test_files}) +endif (PERL_PROGRAM) diff --git a/tests/normal.t.pl b/tests/normal.t.pl index e30befe..cf586f3 100755 --- a/tests/normal.t.pl +++ b/tests/normal.t.pl @@ -12,9 +12,6 @@ require("tests/common.pl"); my $tempDir = $ENV{'TMPDIR'} || "/tmp"; -# run unit tests -ok( system("./encfs/test 2> /dev/null") == 0, "unit tests"); - # test filesystem in standard config mode &runTests('standard');