Looking for detailed build instructions

Hi,

I’m trying to build the desktop linux app from git source. While I do have the mentioned dependencies (Java 10, Maven3) I get loads of maven compile errors. So maybe there are some more dependencies (special java vendor, etc.)

Can someone point me to detailed build instructions for linux desktop? Can’t seem to find any …

Thanks in advance!

arngast

Currently you need the Oracle JDK due to the JavaFX dependency. We will migrate to OpenJDK with Java 11.

Then simply run Maven. On our CI server we use the command mvn -fmain/pom.xml clean package -Prelease. This gives you both, a runnable fat jar as well as antkit.tar.gz which includes all libs for further downstream custom offline-builds, such as custom packaging.

ok, I switched from OpenJDK to OracleJDK and the build issues disappeared on cryptomator. I can run the java build. Thanks.

However, when I’m building cryptomator it does not seem to pull the latest sources from cryptolib as I am interested in a recently fixed bug (which is still in the built jar)

I’ve put the packages in parallel directories:

cryptolib/
cryptomator/
cyptomator-linux/
fuse-nio-adapter/
siv-mode/

It appears that when I’m building cryptomator, it does ignore the other packages.

So can you please tell me what git packages I need and how to combine them to get a complete master?

Thanks
arngast

OK, it appears to me that the cryptomator branch “develop” still links to cryptofs release 1.5.2, not its develop branch.

Now I would like to build cryptomator together with the current cryptofs develop branch. How would I do that (short of waiting for the next official release)?

On your local machine, you first compile the library via mvn clean install, then in the main project in main/pom.xml change the version of said library to the one you compiled (usually x.y.z-SNAPSHOT) and build it. It will then use the snapshot from your local maven repository, that you just built.

I am also trying to build on Linux and I could not figure out how to do it.

The first thing that is unclear is whether I need to clone more than one repo. This is what I did:

git clone https://github.com/cryptomator/cryptomator.git
cd cryptomator
mvn -fmain/pom.xml clean package -Prelease

Build finishes with success and I pass all tests. Now what? I get a jar in ui, launcher, keychain and commons and a bunch of jars in buildkit. Do I need to use the cryptomator-linux repo and build using Docker? How do I use that repo?

All the jars are in fact in buildkit. From this point on the build is continued with platform-dependent repos. The same question already occured here:

Can you provide instructions on how to build using the cryptomator-linux repo? I tried moving the cryptomator directory into cryptomator-linux (renamed the directory to Cryptomator) but both scripts in the linux repo error out.

$ git clone https://github.com/cryptomator/cryptomator-linux.git
$ cd cryptomator-linux
$ git clone https://github.com/cryptomator/cryptomator.git Cryptomator
$ mvn -fCryptomator/main/pom.xml clean package -Prelease
$ ./appimage-build.sh
./appimage-build.sh: line 26: ./tools/appimagekit/squashfs-root/AppRun: No such file or directory
$ ls tools/appimagekit/
# emtpy directory
$ ./appdir-build.sh
./libs/version.txt does not exist.
$ find . -name 'version.txt'
./Cryptomator.AppDir/main/buildkit/target/version.txt
./Cryptomator.AppDir/main/buildkit/src/main/resources/version.txt
# neither are inside a libs directory

The two scripts are called by Travis one after another in different build steps. We’d have to add a new script for manual building. Feel free to create an issue on the cryptomator-linux repo.