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
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
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!
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).
DELTA_CHAT_RPC_SERVER
is not passed through unless you also specify --allow-unsafe-core-replacement
like this:
DELTA_CHAT_RPC_SERVER="$(command -v deltachat-rpc-server)" npm run start -- --allow-unsafe-core-replacement
tnx, it work