Delta Chat on FreeBSD

Can anyone create an installation package for FreeBSD?

While that would be cool, I think it’s out of scope for the core team currently.
But I could try to help you here in this thread when you try to compile it yourself.

Thank you. This is what I get git clone https://github.com/deltachat/deltachat-desktop.gitcd deltachat-deskt - Pastebin.com

Ok nodebindings are problematic, we will remove them in the following months until then you can try the method with the jsonrpc binary.
For this you need to compile the dc-core-jsonrpc-stdio-server for freebsd (deltachat-core-rust/deltachat-rpc-server at main · deltachat/deltachat-core-rust · GitHub) and use this desktop pr/branch use stdio binary instead of dc node by Simon-Laux · Pull Request #3567 · deltachat/deltachat-desktop · GitHub

And add the name of the binary build for freebsd to src/main/deltachat/stdio_server.ts

Keep in mind that this branch is does not have the newest changes as it is already a bit older.

git clone https://github.com/deltachat/deltachat-core-rust.git
cd deltachat-core-rust/
cargo build
   Compiling deltachat v1.135.1 (/home/user/Repos/github.com/deltachat/deltachat-core-rust)
    Finished dev [optimized] target(s) in 7m 27s
cd ..
git clone https://github.com/deltachat/deltachat-desktop.git
cd deltachat-desktop

What to do next?

These:

npm install
npm run build
npm start

And see if it works. I’m happy to be of more help once I get myself a FreeBSD system which should happen in midterm future which should be 1-3 months. I mean having a FreeBSD base is already on my schedule.

Sorry, I didn’t understand how to use pr/branch

build jsonrpc server binary

cd deltachat-core-rust/
cargo build -p deltachat-rpc-server --release

Then confirm that it worked:

file ./target/release/deltachat-rpc-server
./target/release/deltachat-rpc-server --openrpc # this should have technical output (a big JSON file)

then copy the file (./target/release/deltachat-rpc-server) to the desktop folder after you checked out the special branch

# copy the file to it
# then
cd deltachat-desktop
git checkout origin/stdio-experiment-with-jikstra

then edit src/main/deltachat/stdio_server.ts to add a case for freebsd, so it finds the binary.

then run the commands farooqkz send above:

npm install
npm run build
npm start

Update: I updated the branch, so it now also contains the new account switcher.

I copy ./target/release/deltachat-rpc-server to /home/user/bin/ and edited src/main/deltachat/stdio_server.ts

  binary_name() {
   ...
    } else if ( p === 'freebsd' && a === 'x64' ) {
      return 'deltachat-rpc-server'
    }

npm install

looks like electron does not support freebsd, you need to research if there is a recent unofficial build of it somewhere

maybe GitHub - tagattie/FreeBSD-Electron: Electron port for FreeBSD might work.

I run

pkg install electron25
electron25

and window opened
but same errors with npm install

1 Like

Seems you can skip download with

ELECTRON_SKIP_BINARY_DOWNLOAD=1 npm install

Edit: in package.json edit the script for "start": replace electron with electron25

Let’s hope electron 25 is new enough, currently we use 28 on the official version

:frowning:

looks like you need to patch node_modules/application-config-path/index.js to add support for FreeBSD

This module basically returns the path where the config file and accounts should be saved.

node_modules/application-config-path/index.js
+ case 'freebsd': return linux(name)
~/Repos/github.com/deltachat/deltachat-desktop $ cp /home/user/bin/deltachat-rpc-server ./
npm run build
npm start

And it worked! Thank you!

3 Likes

I know that BSDs can easily run Linux apps. So maybe a native Electron for BSDs is not necessary after all?

Edit: And as far as I remember, Linux apps for BSDs work much better than Windows apps for Linux/BSD(like Wine).