Merge pull request #51 from rfjakob/next

Fix reverse tests on OSX, improve install documentation
This commit is contained in:
Valient Gough 2015-01-17 16:39:05 -08:00
commit a69075a901
10 changed files with 108 additions and 38 deletions

View File

@ -9,7 +9,8 @@ user-mode and acts as a transparent encrypted filesystem.
Usage Usage
----- -----
- To see command line options, see the man page for encfs and encfsctl, or for - To see command line options, see the man page for [encfs](encfs/encfs.pod)
and [encfsctl](encfs/encfsctl.pod), or for
brief usage message, run the programs without an argument (or '-h'): brief usage message, run the programs without an argument (or '-h'):
% encfs -h % encfs -h
% man encfs % man encfs

23
INSTALL
View File

@ -1,23 +0,0 @@
Encfs uses the GNU autoconf / automake toolchain to create makefiles.
The configure script is automatically generated, but is part of most EncFS
distributions. If you have a distribution that does not contain the configure
script, then you can generate it by running "autoreconf -if" or by running
"make -f Makefile.dist".
To build encfs, run:
./configure
make
This creates two executables, encfs and encfsctl in 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.
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.

54
INSTALL.md Normal file
View File

@ -0,0 +1,54 @@
This document provides generic information for compiling EncFS.
If you are looking for specific instructions for your distribution,
take a look at the page
**[Installing EncFS](https://github.com/vgough/encfs/wiki/Installing-Encfs)**
in the wiki.
Compiling EncFS
===============
EncFS uses the GNU autoconf / automake toolchain to create makefiles.
Also, the configure script is automatically generated using autoreconf.
Compiling EncFS is a three-step process:
autoreconf -if
./configure
make
Optional, but strongly recommended, is running the test suite
to verfify that the generated binaries work as expected
(runtime: 20 seconds)
make test
The compilation process creates two executables, encfs and encfsctl in
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.
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.
Dependencies
============
EncFS depends on a number of libraries:
openssl fuse boost-serialization gettext libtool libintl
Compiling on Debian and Ubuntu
==============================
We use Travis CI to automatically build-test every commit:
[![Build Status](https://travis-ci.org/vgough/encfs.svg)](https://travis-ci.org/vgough/encfs)
The [Travis configuration file .travis.yml](.travis.yml) therefore
always contains up-to-date instructions to build EncFS on Ubuntu
(Travis uses Ubuntu build machines).

View File

@ -17,7 +17,10 @@ EncFS encrypts individual files, by translating all requests for the virtual
EncFS filesystem into the equivalent encrypted operations on the raw EncFS filesystem into the equivalent encrypted operations on the raw
filesystem. filesystem.
For more technical details and a usage overview, see [DESIGN.md](DESIGN.md). For more info, see:
- The excellent [encfs manpage](encfs/encfs.pod)
- The technical overview in [DESIGN.md](DESIGN.md)
## Status ## Status

View File

@ -14,6 +14,12 @@ dnl without this order in this file, automake will be confused!
dnl dnl
AM_CONFIG_HEADER(config.h) 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` dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH unset CDPATH

View File

@ -138,7 +138,7 @@ the encrypted data. You must also keep a copy of the file /home/me/.encfs5
which contains the filesystem information. Together, the two can be used to which contains the filesystem information. Together, the two can be used to
reproduce the unencrypted data: reproduce the unencrypted data:
ENCFS5_CONFIG=/home/me/.encfs5 encfs /tmp/crypt-view /tmp/plain-view ENCFS6_CONFIG=/home/me/.encfs6.xml encfs /tmp/crypt-view /tmp/plain-view
Now /tmp/plain-view contains the same data as /home/me Now /tmp/plain-view contains the same data as /home/me
@ -232,6 +232,24 @@ B<Warning>: Use this option at your own risk.
=back =back
=head1 ENVIRONMENT VARIABLES
=over 4
=item B<ENCFS6_CONFIG>
Which config file (typically named .encfs6.xml) to use.
By default, the config file is read from the encrypted directory.
Using this option allows to store the config file separated from the
encrypted files.
Warning: If you lose the config file, the encrypted file contents are
irrecoverably lost. It contains the master key encrypted with your
password. Without the master key, recovery is impossible, even if you
know the password.
=back
=head1 EXAMPLES =head1 EXAMPLES
Create a new encrypted filesystem. Store the raw (encrypted) data in Create a new encrypted filesystem. Store the raw (encrypted) data in

View File

@ -33,7 +33,7 @@
# and this notice are preserved. This file is offered as-is, without any # and this notice are preserved. This file is offered as-is, without any
# warranty. # warranty.
#serial 21 #serial 22
AC_DEFUN([AX_BOOST_BASE], AC_DEFUN([AX_BOOST_BASE],
[ [
@ -97,6 +97,12 @@ if test "x$want_boost" = "xyes"; then
;; ;;
esac 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 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 this location ist chosen if boost libraries are installed with the --layout=system option
dnl or if you install boost with RPM dnl or if you install boost with RPM

View File

@ -1,3 +1,16 @@
# Portable FUSE unmount
# works on Linux AND OSX
sub portable_unmount {
my $crypt = shift;
my $fusermount = qx(which fusermount);
chomp($fusermount);
if(-f $fusermount) {
qx($fusermount -u "$crypt");
} else {
qx(umount "$crypt");
}
}
# Helper function # Helper function
# Get the MD5 sum of the file open at the filehandle # Get the MD5 sum of the file open at the filehandle
use Digest::MD5 qw(md5_hex); use Digest::MD5 qw(md5_hex);

View File

@ -316,15 +316,7 @@ sub mount
# Unmount and delete mountpoint # Unmount and delete mountpoint
sub cleanup sub cleanup
{ {
my $fusermount = qx(which fusermount); portable_unmount($crypt);
chomp($fusermount);
if(-f $fusermount)
{
qx($fusermount -u "$crypt");
} else
{
qx(umount "$crypt");
}
rmdir $crypt; rmdir $crypt;
ok( ! -d $crypt, "unmount ok, mount point removed"); ok( ! -d $crypt, "unmount ok, mount point removed");

View File

@ -32,8 +32,8 @@ sub newWorkingDir
# Unmount and delete mountpoint # Unmount and delete mountpoint
sub cleanup sub cleanup
{ {
system("fusermount -u $decrypted"); portable_unmount($decrypted);
system("fusermount -u $ciphertext"); portable_unmount($ciphertext);
our $workingDir; our $workingDir;
rmtree($workingDir); rmtree($workingDir);
ok( ! -d $workingDir, "working dir removed"); ok( ! -d $workingDir, "working dir removed");