mirror of
https://github.com/vgough/encfs.git
synced 2024-11-21 15:33:16 +01:00
Merge branch 'master' into sanity
This commit is contained in:
commit
72e21f3c09
78
.travis.yml
78
.travis.yml
@ -1,45 +1,53 @@
|
||||
dist: trusty
|
||||
|
||||
language: cpp
|
||||
|
||||
sudo: required
|
||||
|
||||
env:
|
||||
global:
|
||||
- SUDO_MOUNT=sudo
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- os: osx
|
||||
include:
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
dist: trusty
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- attr
|
||||
- fuse
|
||||
- libfuse-dev
|
||||
- gettext
|
||||
- cmake3
|
||||
env:
|
||||
- INTEGRATION=false
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- travis
|
||||
- os: linux
|
||||
compiler: clang
|
||||
dist: trusty
|
||||
sudo: true
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
- attr
|
||||
- fuse
|
||||
- libfuse-dev
|
||||
- gettext
|
||||
- cmake3
|
||||
- clang-4.0
|
||||
- clang-tidy-4.0
|
||||
env:
|
||||
- CC=clang-4.0 CXX=clang++-4.0 CHECK=true INTEGRATION=true SUDO_MOUNT=sudo
|
||||
|
||||
- os: osx
|
||||
compiler: clang
|
||||
osx_image: xcode8.3
|
||||
sudo: true
|
||||
env:
|
||||
- INTEGRATION=true SUDO_MOUNT=sudo
|
||||
|
||||
before_script:
|
||||
- ./ci/setup.sh
|
||||
|
||||
script:
|
||||
- ./ci/check.sh
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- attr
|
||||
- clang
|
||||
- fuse
|
||||
- libfuse-dev
|
||||
- gettext
|
||||
- cmake3
|
||||
- ./build.sh
|
||||
|
@ -93,6 +93,23 @@ check_cxx_source_compiles ("#include <sys/types.h>
|
||||
int main() { getxattr(0,0,0,0,0,0); return 1; }
|
||||
" XATTR_ADD_OPT)
|
||||
|
||||
# If awailable on current architecture (typically embedded 32-bit), link with it explicitly;
|
||||
# GCC autodetection is faulty, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358 and
|
||||
# find_libray is no great help here since it is sometimes(!) not in standard paths.
|
||||
set(CMAKE_REQUIRED_FLAGS "-latomic")
|
||||
CHECK_CXX_SOURCE_COMPILES("int main() {return 0;}" COMPILER_NEEDS_LATOMIC)
|
||||
if(COMPILER_NEEDS_LATOMIC)
|
||||
set(ATOMIC_LIBRARY atomic)
|
||||
endif()
|
||||
# compensate the effect of extra linking of libatomic on platforms where intrinsics are used
|
||||
set(CMAKE_REQUIRED_FLAGS "-Wl,--as-needed")
|
||||
CHECK_CXX_SOURCE_COMPILES("int main() {return 0;}" LINKER_SUPPORTS_WLASNEEDED)
|
||||
if(LINKER_SUPPORTS_WLASNEEDED)
|
||||
list(APPEND EXTRA_LINKER_FLAGS "-Wl,--as-needed")
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
# Check if we have some standard functions.
|
||||
include (CheckFuncs)
|
||||
check_function_exists_glibc (lchmod HAVE_LCHMOD)
|
||||
@ -146,7 +163,7 @@ if (ENABLE_NLS)
|
||||
endif (ENABLE_NLS)
|
||||
|
||||
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.5) # Need 3.6 or above.
|
||||
find_program(CLANG_TIDY_EXE NAMES "clang-tidy" DOC "Path to clang-tidy executable")
|
||||
find_program(CLANG_TIDY_EXE NAMES "clang-tidy" "clang-tidy-4.0" DOC "Path to clang-tidy executable")
|
||||
if(NOT CLANG_TIDY_EXE)
|
||||
message(STATUS "clang-tidy not found.")
|
||||
else()
|
||||
@ -154,6 +171,8 @@ if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.5) # Need 3.6 or abo
|
||||
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-checks=*,-modernize-loop-convert,-cppcoreguidelines-pro-*,-readability-inconsistent-declaration-parameter-name,-google-readability-casting,-cert-err58-cpp,-google-runtime-int,-readability-named-parameter,-google-build-using-namespace,-misc-unused-parameters,-google-runtime-references")
|
||||
#set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-fix" "-checks=-*,google-readability-redundant-smartptr-get")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "clang-tidy check skipped, need newer cmake")
|
||||
endif()
|
||||
|
||||
if (USE_INTERNAL_TINYXML)
|
||||
@ -214,12 +233,14 @@ set_target_properties(encfs PROPERTIES
|
||||
VERSION ${ENCFS_VERSION}
|
||||
SOVERSION ${ENCFS_SOVERSION})
|
||||
target_link_libraries(encfs
|
||||
${EXTRA_LINKER_FLAGS}
|
||||
${FUSE_LIBRARIES}
|
||||
${OPENSSL_LIBRARIES}
|
||||
${TINYXML_LIBRARIES}
|
||||
${EASYLOGGING_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${Intl_LIBRARIES}
|
||||
${ATOMIC_LIBRARY}
|
||||
)
|
||||
if (INSTALL_LIBENCFS)
|
||||
install (TARGETS encfs DESTINATION ${LIB_INSTALL_DIR})
|
||||
|
10
INSTALL.md
10
INSTALL.md
@ -10,7 +10,11 @@ Compiling EncFS
|
||||
|
||||
EncFS uses the CMake toolchain to create makefiles.
|
||||
|
||||
Steps to build EncFS:
|
||||
Quickest way to build and test EncFS :
|
||||
|
||||
./build.sh
|
||||
|
||||
Or following are the detailed steps to build EncFS:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
@ -29,11 +33,11 @@ encrypted filesystem and run tests on it:
|
||||
make integration
|
||||
|
||||
The compilation process creates two executables, encfs and encfsctl in
|
||||
the encfs directory. You can install to in a system directory via
|
||||
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
|
||||
If the default path (`/usr/local`) is not where you want things
|
||||
installed, then set the CMAKE_INSTALL_PREFIX option when running cmake. Eg:
|
||||
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/local
|
||||
|
@ -1,7 +1,6 @@
|
||||
# EncFS - an Encrypted Filesystem
|
||||
|
||||
_Build Status_
|
||||
- Circle: [![Circle CI](https://circleci.com/gh/vgough/encfs.svg?style=svg)](https://circleci.com/gh/vgough/encfs)
|
||||
- Travis: [![Travis CI](https://travis-ci.org/vgough/encfs.svg?branch=master)](https://travis-ci.org/vgough/encfs)
|
||||
|
||||
## About
|
||||
|
32
build.sh
32
build.sh
@ -1,15 +1,33 @@
|
||||
#!/bin/bash -eu
|
||||
|
||||
# Make sure we are in the directory this script is in.
|
||||
cd "$(dirname "$0")"
|
||||
: ${CHECK:=false}
|
||||
: ${INTEGRATION:=true}
|
||||
|
||||
cmake --version
|
||||
|
||||
CFG=$*
|
||||
if [[ "$CHECK" == "true" ]]; then
|
||||
CFG="-DLINT=ON $CFG"
|
||||
fi
|
||||
|
||||
if uname -s | grep -q Darwin; then
|
||||
CFG="-DENABLE_NLS=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl $CFG"
|
||||
fi
|
||||
|
||||
if [[ ! -d build ]]
|
||||
then
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. $*
|
||||
cd ..
|
||||
mkdir build
|
||||
fi
|
||||
|
||||
make -j2 -C build
|
||||
cd build
|
||||
cmake .. ${CFG}
|
||||
make -j2
|
||||
make test
|
||||
if [[ "$INTEGRATION" == "true" ]]; then
|
||||
make integration
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
echo
|
||||
echo 'Everything looks good, you can install via "make install -C build".'
|
||||
|
21
ci/check.sh
21
ci/check.sh
@ -1,21 +0,0 @@
|
||||
#!/bin/bash -eu
|
||||
|
||||
cmake --version
|
||||
|
||||
CFG=""
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
CFG="-DENABLE_NLS=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
|
||||
fi
|
||||
|
||||
if [[ ! -d build ]]
|
||||
then
|
||||
mkdir build
|
||||
fi
|
||||
|
||||
cd build
|
||||
cmake .. ${CFG}
|
||||
make -j2
|
||||
make test
|
||||
|
||||
cd ..
|
||||
|
@ -1,5 +0,0 @@
|
||||
set -x
|
||||
set -e
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/tmp/encfs -DCMAKE_BUILD_TYPE=Debug ..
|
@ -1,5 +0,0 @@
|
||||
set -x
|
||||
set -e
|
||||
sudo apt-get install -y gcc-4.8 g++-4.8
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
|
21
ci/setup.sh
21
ci/setup.sh
@ -1,10 +1,23 @@
|
||||
#!/bin/bash -eu
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
||||
sudo modprobe fuse
|
||||
: ${INTEGRATION:=false}
|
||||
: ${CHECK:=false}
|
||||
|
||||
if [[ "$INTEGRATION" == "true" ]]; then
|
||||
if uname -s | grep -q Linux; then
|
||||
sudo modprobe fuse
|
||||
elif uname -s | grep -q Darwin; then
|
||||
brew cask install osxfuse
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
brew cask install osxfuse
|
||||
if [[ "$CHECK" == "true" ]]; then
|
||||
if uname -s | grep -q Linux; then
|
||||
wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz -O /tmp/cmake.tar.gz
|
||||
tar -C /tmp/ -xf /tmp/cmake.tar.gz
|
||||
sudo rm -f $(which cmake)
|
||||
sudo ln -s $(ls -1 /tmp/cmake*/bin/cmake) /bin/
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
14
circle.yml
14
circle.yml
@ -1,14 +0,0 @@
|
||||
machine:
|
||||
timezone:
|
||||
America/Los_Angeles
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- sudo apt-get install cmake libfuse-dev libgettextpo-dev
|
||||
- bash ./ci/install-gcc.sh
|
||||
|
||||
test:
|
||||
override:
|
||||
- bash ./ci/config.sh
|
||||
- cd build && make && make test && make install
|
||||
- /tmp/encfs/bin/encfsctl --version
|
2
devmode
2
devmode
@ -2,4 +2,4 @@
|
||||
# After running, chdir to the build subdir ane run "make"
|
||||
mkdir build
|
||||
cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug -DLINT=ON \
|
||||
-DCMAKE_CXX_FLAGS="-O1 -fsanitize=address -fno-omit-frame-pointer" $@
|
||||
-DCMAKE_CXX_FLAGS="-O0 -g -fsanitize=address -fno-omit-frame-pointer" $@
|
||||
|
@ -3,4 +3,4 @@
|
||||
# Make sure we are in the directory this script is in.
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
perl -MTest::Harness -e '$$Test::Harness::debug=1; runtests @ARGV;' integration/*.t.pl
|
||||
perl -I. -MTest::Harness -e '$$Test::Harness::debug=1; runtests @ARGV;' integration/*.t.pl
|
||||
|
Loading…
Reference in New Issue
Block a user