mirror of
https://github.com/vgough/encfs.git
synced 2024-11-22 07:53:31 +01:00
Merge branch 'master' into sanity
This commit is contained in:
commit
72e21f3c09
72
.travis.yml
72
.travis.yml
@ -1,45 +1,53 @@
|
|||||||
dist: trusty
|
|
||||||
|
|
||||||
language: cpp
|
language: cpp
|
||||||
|
|
||||||
sudo: required
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- SUDO_MOUNT=sudo
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
compiler:
|
|
||||||
- clang
|
|
||||||
- gcc
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
include:
|
||||||
- os: osx
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
|
dist: trusty
|
||||||
branches:
|
sudo: false
|
||||||
only:
|
addons:
|
||||||
- master
|
|
||||||
- travis
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- ./ci/setup.sh
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./ci/check.sh
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
packages:
|
packages:
|
||||||
- attr
|
- attr
|
||||||
- clang
|
|
||||||
- fuse
|
- fuse
|
||||||
- libfuse-dev
|
- libfuse-dev
|
||||||
- gettext
|
- gettext
|
||||||
- cmake3
|
- cmake3
|
||||||
|
env:
|
||||||
|
- INTEGRATION=false
|
||||||
|
|
||||||
|
- 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:
|
||||||
|
- ./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; }
|
int main() { getxattr(0,0,0,0,0,0); return 1; }
|
||||||
" XATTR_ADD_OPT)
|
" 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.
|
# Check if we have some standard functions.
|
||||||
include (CheckFuncs)
|
include (CheckFuncs)
|
||||||
check_function_exists_glibc (lchmod HAVE_LCHMOD)
|
check_function_exists_glibc (lchmod HAVE_LCHMOD)
|
||||||
@ -146,7 +163,7 @@ if (ENABLE_NLS)
|
|||||||
endif (ENABLE_NLS)
|
endif (ENABLE_NLS)
|
||||||
|
|
||||||
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.5) # Need 3.6 or above.
|
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)
|
if(NOT CLANG_TIDY_EXE)
|
||||||
message(STATUS "clang-tidy not found.")
|
message(STATUS "clang-tidy not found.")
|
||||||
else()
|
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}" "-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")
|
#set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-fix" "-checks=-*,google-readability-redundant-smartptr-get")
|
||||||
endif()
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "clang-tidy check skipped, need newer cmake")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_INTERNAL_TINYXML)
|
if (USE_INTERNAL_TINYXML)
|
||||||
@ -214,12 +233,14 @@ set_target_properties(encfs PROPERTIES
|
|||||||
VERSION ${ENCFS_VERSION}
|
VERSION ${ENCFS_VERSION}
|
||||||
SOVERSION ${ENCFS_SOVERSION})
|
SOVERSION ${ENCFS_SOVERSION})
|
||||||
target_link_libraries(encfs
|
target_link_libraries(encfs
|
||||||
|
${EXTRA_LINKER_FLAGS}
|
||||||
${FUSE_LIBRARIES}
|
${FUSE_LIBRARIES}
|
||||||
${OPENSSL_LIBRARIES}
|
${OPENSSL_LIBRARIES}
|
||||||
${TINYXML_LIBRARIES}
|
${TINYXML_LIBRARIES}
|
||||||
${EASYLOGGING_LIBRARIES}
|
${EASYLOGGING_LIBRARIES}
|
||||||
${CMAKE_THREAD_LIBS_INIT}
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
${Intl_LIBRARIES}
|
${Intl_LIBRARIES}
|
||||||
|
${ATOMIC_LIBRARY}
|
||||||
)
|
)
|
||||||
if (INSTALL_LIBENCFS)
|
if (INSTALL_LIBENCFS)
|
||||||
install (TARGETS encfs DESTINATION ${LIB_INSTALL_DIR})
|
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.
|
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
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
@ -29,11 +33,11 @@ encrypted filesystem and run tests on it:
|
|||||||
make integration
|
make integration
|
||||||
|
|
||||||
The compilation process creates two executables, encfs and encfsctl in
|
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
|
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:
|
installed, then set the CMAKE_INSTALL_PREFIX option when running cmake. Eg:
|
||||||
|
|
||||||
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/local
|
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/local
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
# EncFS - an Encrypted Filesystem
|
# EncFS - an Encrypted Filesystem
|
||||||
|
|
||||||
_Build Status_
|
_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)
|
- Travis: [![Travis CI](https://travis-ci.org/vgough/encfs.svg?branch=master)](https://travis-ci.org/vgough/encfs)
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
30
build.sh
30
build.sh
@ -1,15 +1,33 @@
|
|||||||
#!/bin/bash -eu
|
#!/bin/bash -eu
|
||||||
|
|
||||||
# Make sure we are in the directory this script is in.
|
: ${CHECK:=false}
|
||||||
cd "$(dirname "$0")"
|
: ${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 ]]
|
if [[ ! -d build ]]
|
||||||
then
|
then
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
|
||||||
cmake .. $*
|
|
||||||
cd ..
|
|
||||||
fi
|
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
|
#!/bin/bash -eu
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
: ${INTEGRATION:=false}
|
||||||
|
: ${CHECK:=false}
|
||||||
|
|
||||||
|
if [[ "$INTEGRATION" == "true" ]]; then
|
||||||
|
if uname -s | grep -q Linux; then
|
||||||
sudo modprobe fuse
|
sudo modprobe fuse
|
||||||
fi
|
elif uname -s | grep -q Darwin; then
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
brew cask install osxfuse
|
brew cask install osxfuse
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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"
|
# After running, chdir to the build subdir ane run "make"
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug -DLINT=ON \
|
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.
|
# Make sure we are in the directory this script is in.
|
||||||
cd "$(dirname "$0")"
|
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