JonDo sources/de

From JonDonym Wiki
Jump to: navigation, search

En2.png De2.png  Hauptseite (de) | Changelogs und Sourcen

JonDo Sourcen

Herunterladen der Quellen und JonDo kompilieren

JonDo ist eine Java-Applikation. Um die Quellen zu übersetzen wird ein Java-JDK und das Build-Tool maven2 benötigt. Die Sourcen werden in zwei gespiegelten SVN-Repositories bereitgestellt (JonDos GmbH, TU Dresden). Für den Download ist subversion erforderlich.

JonDo besteht aus folgenden Komponenten, die auch einzeln mit subversion aus den Repositories ausgecheckt und übersetzt werden können:

  1. anonlib Die Basis-Bibliothek von JonDo.
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/anonlib/anonlib/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/anonlib/anonlib/trunk
  2. BouncyCastleLightForANON Die Krypto-Bibliothek
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/BouncyCastleLightForANON/BouncyCastleLightForANON/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/BouncyCastleLightForANON/BouncyCastleLightForANON/trunk
  3. guilib Die GUI-Bibliothek des JonDonym-Projektes.
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/guilib/guilib/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/guilib/guilib/trunk
  4. logginglib Die Logging-Bibliothek des JonDonym-Projektes.
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/logginglib/logginglib/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/logginglib/logginglib/trunk
  5. JonDoController Ein generischer Java-Controller für die JonDonym-Client-Funktionen.
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/jondocontroller/JonDoController/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/jondocontroller/JonDoController/trunk
    3. Online durch den Quellcode browsen unter: https://anonymous-proxy-servers.net/wiki/jondocontroller/doc/
  6. JonDoConsole Das JonDo-Programm für die Kommandozeilem (ohne GUI)
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/jondoconsole/JonDoConsole/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/jondoconsole/JonDoConsole/trunk
  7. JAP Das grafische JonDo-Programm.
    1. SVN-Repository der JonDos GmbH: https://svn.jondos.de/svn/Jap/Jap/trunk
    2. SVN-Repository der TU Dresden: https://anon.inf.tu-dresden.de/svn/Jap/Jap/trunk
    3. Online durch den Quellcode browsen unter: http://anon.inf.tu-dresden.de/develop/doc/jap/

Die SSL-Zertifikate für die Repositorys sind selbssigniert. Der SHA1-Fingerprint des Repository der JonDos GmbH ist:

93:82:7d:96:6a:bf:0e:72:88:d2:90:6d:af:e1:a4:e1:11:00:67:7b

Um JonDo aus den Quellen zu erstellen, reicht es aus, nur das JonDo-Programm (JAP, mit grafischen Interface) oder JonDoConsole (ohne grafisches Interface) auszuchecken. Das Build-Tool maven2 holt alle weiteren nötigen Bibliotheken und kompiliert sie. JAP erstellen sie mit folgenden Schritten:

svn checkout https://svn.jondos.de/svn/Jap/Jap/trunk
cd trunk
mvn package

Danach findet man im Unterverzeichnis /target die JAR-Datei jap-00.xx.yyy-SNAPSHOT-jar-with-dependencies.jar. Benennen Sie die Datei in JAP.jar um und starten Sie den selbst gebauten JonDo mit:

java -jar JAP.jar

Das DEB-Paket für Debian und Ubuntu kann nach dem erfolgreichen Build erstellt werden. Im Verzeichnis target/ muss die Datei jap-00.xx.yyy-SNAPSHOT-jar-with-dependencies.jar in JAP.jar umbenannt werden. Wechseln sie ins Verzeichnis JAP/trunk und erstellen sie das DEB-Paket mit folgendem Kommando:

cd JAP/trunk
fakeroot make -f debian/rules binary
fakeroot make -f debian/rules clean

Das fertige Paket jondo-XXX_all.deb wird ebenfalls im Unterverzeichnis target/ abgelegt.

Adding new features to JonDo

If you want to play with the code or fix some bugs or even add some new features then just do the following. Choose the relevant library and there the proper source file and implement your changes. Afterwards go to the /trunk directory of the library (where the pom.xml) is located and run:

mvn install

Then go to the /jap/trunk directory and run again

mvn package

in order to incorporate your new code into the JonDo. This seems quite easy and, indeed, it is provided you avoid some pitfalls:

  1. Depending on which library your are editing it can be that you have to run "mvn install" in other libraries (and there in the respective /trunk directory) as well in order to get your changes activated. For instance, if you change some code in the anonlib, then it is not enough to run "mvn install" only in its /trunk directory but you have to run it in the guilib /trunk directory as well before you run "mvn package". The reason is that jap does not directly depend on the anonlib but on the guilib which in turn depends directly on the anonlib. Thus, without running "mvn install" in the guilib /trunk directory there is a fair chance that an old version of the guilib-library will be used if you are building JonDo, one which does not have your changes included. Therefore, ist is important to check the dependencies in the respective pom.xml files (at least once) before building jap. There is an amount of dependency-tags there which shows the direct dependencies of each library.
  2. Now that you are aware of all the dependencies there still can go something wrong. The version of the library you improved must match the version used by jap directly or indirectly. Thus, let's suppose again that you have changed the anonlib which has version 00.12.015 now (see the version-tag in the respective pom.xml). Suppose further, the guilib uses version 00.12.014 of the anonlib, i.e. depends on version 00.12.014 of this library (see the respective version-tag within the dependency-tag of the guilib pom.xml). In this case your changes won't be used by "mvn package" even if you ran "mvn install" on both the anonlib and the guilib. Therefore, keep in mind to adjust the library's version in the libraries which directly depend on it (that means editing their pom.xml files) to the one your changed library actually has. Then, run "mvn install" and "mvn package" as usual.
Personal tools