mirror of
https://github.com/vgough/encfs.git
synced 2025-01-24 14:48:35 +01:00
Merge pull request #51 from rfjakob/next
Fix reverse tests on OSX, improve install documentation
This commit is contained in:
commit
a69075a901
@ -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
23
INSTALL
@ -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
54
INSTALL.md
Normal 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).
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
|
@ -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");
|
||||||
|
Loading…
Reference in New Issue
Block a user