doc/README.txt
author Damiano Boppart <damiano@pep-security.net>
Mon, 28 Aug 2017 14:32:46 +0200
branchENGINE-237
changeset 2008 f93bf1fac875
permissions -rw-r--r--
Move most documentation to doc/, update README
damiano@2008
     1
# this file is under Creative Commons License 3.0 cc-by-sa
damiano@2008
     2
damiano@2008
     3
1. Dependencies
damiano@2008
     4
---------------
damiano@2008
     5
damiano@2008
     6
p≡p engine is depending on the following FOSS libraries:
damiano@2008
     7
damiano@2008
     8
* a fork of libetpan, see https://github.com/fdik/libetpan
damiano@2008
     9
       git clone https://github.com/fdik/libetpan
damiano@2008
    10
damiano@2008
    11
* zlib, see http://zlib.net/
damiano@2008
    12
Oh yeah? Where?
damiano@2008
    13
damiano@2008
    14
* OpenSSL, see http://openssl.org/
damiano@2008
    15
Oh yeah? Where?
damiano@2008
    16
damiano@2008
    17
* iconv, see http://www.gnu.org/software/libiconv/
damiano@2008
    18
damiano@2008
    19
* Cyrus SASL, see http://cyrusimap.org/
damiano@2008
    20
Oh yeah? Where?
damiano@2008
    21
damiano@2008
    22
* One of the following OpenPGP implementations:
damiano@2008
    23
  * GnuPG via GPGME, version 1.6.0 or newer, see https://gnupg.org/
damiano@2008
    24
  * NetPGP/p≡p, see https://cacert.pep.foundation/dev/repos/netpgp-et/
damiano@2008
    25
damiano@2008
    26
* libcurl
damiano@2008
    27
Maybe on iOS?
damiano@2008
    28
damiano@2008
    29
SQlite3
damiano@2008
    30
damiano@2008
    31
damiano@2008
    32
damiano@2008
    33
damiano@2008
    34
compile-time dependencies:
damiano@2008
    35
damiano@2008
    36
* Asn1c, download from https://lionet.info/soft/asn1c-0.9.27.tar.gz . Debian 8's v0.9.24 does not work. Debian 9's v0.9.27 generates non-POSIX code, that will cause issues when the engine is compiled with '-std=c99'. Thus, use v0.9.28 for best results.
damiano@2008
    37
damiano@2008
    38
* yml2, which needs lxml (where to get?)
damiano@2008
    39
damiano@2008
    40
* One of the following build systems
damiano@2008
    41
  * GNU make
damiano@2008
    42
  * Visual Studio 2015
damiano@2008
    43
damiano@2008
    44
damiano@2008
    45
2. Building p≡p engine
damiano@2008
    46
----------------------
damiano@2008
    47
damiano@2008
    48
p≡p engine has an old style Makefile for building it.
damiano@2008
    49
damiano@2008
    50
The build is configured in Makefile.conf
damiano@2008
    51
damiano@2008
    52
It supports the common targets
damiano@2008
    53
damiano@2008
    54
$ make all
damiano@2008
    55
$ make install
damiano@2008
    56
$ make clean
damiano@2008
    57
damiano@2008
    58
and additionally
damiano@2008
    59
damiano@2008
    60
$ make package # for building a .tar.bz2 with the source distribution
damiano@2008
    61
damiano@2008
    62
On Windows, use Visual Studio.
damiano@2008
    63
damiano@2008
    64
damiano@2008
    65
3. How to cross-build
damiano@2008
    66
---------------------
damiano@2008
    67
damiano@2008
    68
For cross-building, BUILD_FOR is being used. I.e.:
damiano@2008
    69
damiano@2008
    70
$ BUILD_FOR=yourOS make -e
damiano@2008
    71
damiano@2008
    72
damiano@2008
    73
4. How to build the databases
damiano@2008
    74
-----------------------------
damiano@2008
    75
damiano@2008
    76
p≡p Engine uses two databases: ~/.pEp_management (on *NIX) or
damiano@2008
    77
%LOCALAPPDATA%\pEp\management.db on Windoze respectively, and
damiano@2008
    78
/usr/local/share/system.db on *NIX or %ALLUSERSPROFILE%\pEp\system.db
damiano@2008
    79
respectively. The latter contains the Trustwords dbs.
damiano@2008
    80
damiano@2008
    81
The managment db is being created by the first call of init() of p≡p Engine. It
damiano@2008
    82
does not need to be created manually. system.db is being created by using the
damiano@2008
    83
DDL in db/create_system_db.sql – the content is created by db/dic2csv.py
damiano@2008
    84
out of hunspell's dictionary packages (or something similar) and then being
damiano@2008
    85
imported using sqlite3's .import command. Dictionary files for different
damiano@2008
    86
languages are part of p≡p engine source distribution.
damiano@2008
    87
damiano@2008
    88
$ make db
damiano@2008
    89
$ make -C db install
damiano@2008
    90
damiano@2008
    91
You can test the Trustwords in system.db using db/trustwords.py
damiano@2008
    92
Both Python tools have a switch --help
damiano@2008
    93
damiano@2008
    94
damiano@2008
    95
5. How to run the tests
damiano@2008
    96
-----------------------
damiano@2008
    97
damiano@2008
    98
You have to import all the test keys into your local gpg instance:
damiano@2008
    99
damiano@2008
   100
	cd test
damiano@2008
   101
	cat 0x*.asc *_sec.asc| gpg --import
damiano@2008
   102