Coder Social home page Coder Social logo

deltachat / deltachat-core-rust Goto Github PK

View Code? Open in Web Editor NEW
636.0 31.0 81.0 31.76 MB

Delta Chat Rust Core library, used by Android/iOS/desktop apps, bindings and bots ๐Ÿ“ง

Home Page: https://delta.chat/en/contribute

License: Other

Rust 74.28% C 8.26% Shell 0.23% Dockerfile 0.01% Python 11.30% CSS 0.01% CMake 0.04% JavaScript 1.30% TypeScript 1.91% HTML 0.29% DIGITAL Command Language 1.41% Roff 0.14% Ruby 0.33% Cuda 0.02% Nix 0.47%
deltachat rust chat messenger email instant-messaging pgp imap smtp openpgp

deltachat-core-rust's People

Contributors

adbenitez avatar ampli-fier avatar cyberta avatar dependabot[bot] avatar dignifiedquire avatar dotlambda avatar elwerene avatar flub avatar frando avatar gerryfrancis avatar hagenest avatar hendrik-jansen avatar hocuri avatar hpk42 avatar iequidoo avatar jikstra avatar link2xt avatar meganoahj avatar missytake avatar nicodh avatar pabzm avatar picohz avatar r10s avatar ralphtheninja avatar rosano avatar septias avatar shubhank008 avatar simon-laux avatar snan avatar the-compiler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deltachat-core-rust's Issues

Add a option to delete old messages from the server

If someone use a free mailer like GMX only for Delta Chat he/she never will check if the storage limit is reached.

If messages will deleted after a time (as userpreference) there should be no problems.

Unable to make "simple" example work

I have tried to modify examples/simple.rs to use my email server and set "mail_server" and "send_server" via dc_set_config. That is to try if the problem deltachat/deltachat-core#605 arises.

Now I don't even see it connecting to the SMTP server. IMAP server is successfully connected, because if I provide incorrect password, it shows messages about failed auth.

...
[CONFIGURE_PROGRESS]
  progress: 800
[CONFIGURE_PROGRESS]
  progress: 900
[INFO]
  Configuring IMAP-folders.
[CONFIGURE_PROGRESS]
  progress: 910
[CONFIGURE_PROGRESS]
  progress: 920
[INFO]
  Generating keypair with 2048 bits, e=65537 ...
sending a message
[GET_STRING]
[CONTACTS_CHANGED]
[GET_STRING]
[MSGS_CHANGED]
[GET_STRING]
[GET_STRING]
[GET_STRING]
[ERROR]
  End-to-end-encryption unavailable unexpectedly.
[MSG_FAILED]
fetching chats..
[GET_STRING]
chat: 0 - None - Some("Hi, here is my first message!")
stopping threads
[INFO]
  Interrupting IMAP-IDLE...
[INFO]
  Interrupting SMTP-idle...
joining
[INFO]
  SMTP-idle ended.
[INFO]
  Keypair generated in 14.203 s.
[INFO]
  Configure completed.
[CONFIGURE_PROGRESS]
  progress: 940
failed to close connection: Bad("no mailbox selected")
[INFO]
  IMAP disconnected.
[CONFIGURE_PROGRESS]
  progress: 1000
[INFO]
  Unsuspending SENTBOX-thread.
[INFO]
  Unsuspending MVBOX-thread.
[INFO]
  INBOX-jobs ended.
closing
[INFO]
  IMAP disconnected.
[INFO]
  IMAP disconnected.
[INFO]
  IMAP disconnected.
[INFO]
  Database closed.

I have tried to increase delay in

let duration = time::Duration::from_millis(10000);

but that only increases the time in "Keypair generated in 14.203 s." message.

Read receipt cleanup

Version info:

Delta Chat Core version 0.15.0

Observation:

When deleting a message with Core on the Server, the corresponding read/return receipt is not removed from the mailbox folder.

Expected behaviour:
Receipts are removed as well.

Can't cancel sending of "big" message

I have sent a 300KB image to a friend, the process have taken several minutes due the slow and intermittent network, long enough I changed my mind and decided not to send the image, since I don't see a more direct way to cancel this, I selected the message and press the delete icon, anyway the message still was sent to the recipient (after another bunch of painful minutes) all subsequent messages I have sent, had to wait for the image to be sent anyway so my DC was unusable until this process ended.

  • Platform (android/blackberry/anbox): Android 6.0
  • Device: BLU
  • Delta Chat Version: 0.91

Use macros for logging

There are now info! warn! and error! macros for logging (you can see usage examples in dc_imap.rs

check if prefetch of headers can be optimized

currently, we're prefetching the headers using FETCH ENVELOP https://tools.ietf.org/html/rfc3501#section-2.3.5 - if this also includes the Autocrypt-Headers, maybe we can optimize that (an Autocrypt-Header with an RSA-key is about 2.5K, an ECC-key is 0.5K - as this sums up to some K when prefetching 10 messages, even the 0.5K this sum up and it's probably worth the effort)

esp. for smaller messages, this will be a huge win as, if the body is small, the messages is mroe or less downloaded twice.

Setup CI

should run

  • rust fmt check
  • cargo test

check traffic on raw idle

@adbenitez reported that watching only the INBOX for 10 minutes results in

k9 - 2KB
siju - 3KB
dc - 6KB

it's a bit too much for delta.

the difference may come from an interrupt every 5 minutes on android which may also cause some traffic. the interrupt is needed at least on some devices to keep things running in the past. however, maybe after we ask for "battery permissions" explicitly, maybe this is not needed or can be done only every hour or so (however, we should first check that the traffic really results from the interrupt)

another explanation might be the FETCH ENVELOP (#598) - although no new messages arrive, sometimes the server interrupt idle to pass a message that already exists. if the headers downloaded are huge then, this may be a reason.

Rename to rust conventions

We use a bunch of flags atm because things are not named appropriately to rust conventions. This should be made probably per file/major struct type

combine multiple read-receipts to a single mail

currently, for every read-receipt a single mail is sent.

this should be optimizable by combining several read-receipts to the same recipient in a single mail. i would not use timeouts or some for the first iteration. it happens often enough that the user opens a chat with 5 new messages and these messages get read-receipts all at the same time. these read-receipts should be combined.

send own avatar to recipients

the api already allows to save a profile image ("avatar") of the user in the same way as the user's display-name or the user's status, see dc_set_config(context, "selfavatar", ...)

while locally reading and writing the avatar is implemented (and is already used at least by android and ios), it's an open question how the avatar data can be sent to the recipients:

  • one possible way to do this is defined in the spec as Chat-Profile-Image header at https://github.com/deltachat/spec/blob/master/spec.md#set-profile-image - this would add the avatar as a normal attachment, same as for the group-images. i think this method makes some sense.

  • an alternative may be the X-Face header, http://quimby.gnus.org/circus/face/, which however, is very limited in dimension and image size otoh it is displayed also by other MUAs. but this advantage would probably also disappear if we start to move the header to the encrypted part.

another open question is how often the avatar data is sent to the recipients:

  • maybe just on changes, only once per recipient
  • for this purpose, a flag to track the avatar-sent-state would be required

check if downloading non-chat-messages can be avoided

it should be possible to avoid downloading of messages the user does not have a chat with.

since deltachat/deltachat-core#588 and deltachat/deltachat-core#580 we have rather easy criterions; it should be possible to decide if a message is important for a user just by the Chat-Version and Message-ID headers.

when targeting this issue and if it's easy enough, maybe also downloading too large messages can be delayed. the user is shown a placeholder and a download-all function downloads the content. but this is probably a bit out-of-scope of this issue, just want to mention it here as it may affect similar parts of the code.

Hack up a docker image for circle ci

Currently we're doing a lot of apt stuff + compiling libetpan + sasl2. This should be abstracted into one of our own images. Also downloading rust etc.

@flub Up for the task? :)

Check .circle_ci/config.yml for details.

Some linking problems on linux during cargo test

$ cargo test
   Compiling deltachat v0.1.0 (/home/lms/src/deltachat/deltachat-core-rust)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.10zqv7o3rusz5our.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.12vvc5rs9lgqr86o.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.1egcfj0qtihjkhkm.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.1mdmhd1xk0f2tyfk.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.1oof8qnhs3bv1e59.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.1zxm9u83ybcq9in9.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.280qjf1h6fg73726.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.2g30yf4fymdpqz9s.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.2gjcvl1w0sv4jnz1.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.39081qnboz02cd1c.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.3vdeojkz4h6o1d9l.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.3y4ukhpvoypoau0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.3z1lpqivky8n3a7v.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.43ivgoj2g01hl6ym.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.48y2a6injxeydfck.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.4ehkhfmjuffadwxg.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.4vuz8nobscizkzlb.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.4ylt9uycpy2n23z9.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.515rswtvt0sy5lom.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.54rkz76ul2gty3zg.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.57rnsasozk6iz0hh.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.eq8tedfi2yv3ed9.rcgu.o" "-o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.4wdwvtlqyep6mi1z.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out" "-L" "/usr/local/lib" "-L" "./include/include" "-L" "./include/libs" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/backtrace-sys-b5c796e15bc3a19e/out" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/libsqlite3-sys-99e07cf08edf4af6/out" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/clear_on_drop-c0c2e568b42ee80e/out" "-L" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libdeltachat-ce92f2819fd1cd66.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblibsqlite3_sys-773d1fa7c628901d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libpgp-f904265594a44322.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbitfield-a434b1ec4ef8239e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtry_from-93368f6b8995886e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libhex-4fca09b7368c3d54.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbuf_redux-32bc424c12ce10bd.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libslice_deque-99e91f4fb9951137.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsafemem-f00aa4a5337cec43.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblog-d6d4baa3c334adc7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libx25519_dalek-3e660dcafbff7de4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtwofish-db44e899eeb0fd6e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha3-7346d786fc8efa2c.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libkeccak-29f25e1710c6e395.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha1-18863e0fd552f31e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libripemd160-3f40fd54462c6d80.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libmd5-91b8fad1e18fdf3f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libed25519_dalek-6c172252846001c8.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcurve25519_dalek-76e0b242af021265.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libclear_on_drop-d8cfa6c6619808cb.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libflate2-321b9dc1387074e1.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libminiz_oxide_c_api-a1e24d26821a8b18.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libminiz_oxide-58bbd443cef5d26b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libadler32-1fed2a21165df8fc.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc-4454bb148bb37cc5.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc32fast-d14acd10f702ef23.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libdes-dbf53f8883e22416.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcircular-c550070ac246141e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcfb_mode-ba67dd3e2c4ba0e7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libstream_cipher-717a69deeea138a9.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcast5-fd239192d3aaa154.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblowfish-1c68449f06c074f6.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_modes-e807e75e82018875.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libaes-fe5ec197c53b46b4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libaes_soft-d97571bee20aa5f4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_cipher_trait-e5b99a1ac8a8de8f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libchrono-d46be364b084c969.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtime-22d385c901573364.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librsa-eca2ec4138ada035.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_bigint_dig-574f70b2a522b974.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsmallvec-52d8ea177eab744d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libzeroize-6682510bd35b0468.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsubtle-1ead1427d123ff8d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand-c9114b34bb23cdbe.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_xorshift-2150bf68735c400f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_pcg-a767e9434c576577.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_hc-e4696596fe3da153.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_chacha-ae8525fe43c5f464.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_isaac-dd013d5f5eeec2ce.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_core-70f70c6333ea393a.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_os-015a6d1a2c07631b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_jitter-c94acf8e3f849c66.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_core-e65e35f617ae545b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_iter-1d324b61684e7b75.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_integer-0b44fc9e58329cfe.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_traits-545e2166927f798e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblazy_static-7a99494f0e27868d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc24-bce24251a757245b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbase64-9a7a1a5ccf1c1a47.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnom-b2405beedc153354.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libmemchr-30885e07bb1b38f5.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha2-0e9a5d1352dc4a69.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libdigest-39046a1440ab91be.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libopaque_debug-041597e14f4212f0.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libfake_simd-078d26dac2eb6213.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_buffer-9254cedd34283bd7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libgeneric_array-39e1175becad1523.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtypenum-b80d02e4bd2791e3.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_padding-e1ad2763b7d52ae6.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbyte_tools-81925955f49a6f1d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbyteorder-f1b402fac509ca46.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libfailure-91dc1d63d804a90b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbacktrace-cab2ff8ba0fbabdb.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbacktrace_sys-b9c8a1681298292e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librustc_demangle-00e6e3e98cd968cf.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcfg_if-70ed510e60e38f5a.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblibc-65d742ba653606fb.rlib" "-Wl,--start-group" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-482af3334a4a2984.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-20a446a3db441f3c.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-0971fa630fca073e.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-391f380bc2050225.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-dd6cec229546fe42.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-120778b273d0c168.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-669c274efa5442f7.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-b7bdeafec2b1788b.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-e3dd59fa51b3c0cf.rlib" "-Wl,--end-group" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-2545eaff28e344bb.rlib" "-Wl,-Bdynamic" "-letpan" "-lsasl2" "-lz" "-lpthread" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: /home/lms/src/deltachat/deltachat-core-rust/target/debug/examples/repl-80bdd544d4423e8d.eq8tedfi2yv3ed9.rcgu.o: in function `repl::read_cmd':
          /home/lms/src/deltachat/deltachat-core-rust/examples/repl/main.rs:382: undefined reference to `__stdinp'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

error: Could not compile `deltachat`.
warning: build failed, waiting for other jobs to finish...
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.10vw1yiegb7tj5iy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.122dqsy78jcrdmj1.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.127f97z5g2jx6dz7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.12n8j1jp2h0bjdcy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.13513b0d98mnd427.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.13bg8nkc16glogn8.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.14500xue3f5i2q9q.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.16m0quj4k072omby.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.187cjql7qihiqfuh.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.18b20idfw1on7fla.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.195i3yfwkafff7wl.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.19895vtp9kx9dazi.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1b3u3ap37nas8bsx.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1dbu0x0zkba1tfwj.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1elhes6729ferscd.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1fobral2parpjwx0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1gmdiwd01w83ncy6.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1hxtcwv8jbxxxo1r.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1ij3iqtdp5936qca.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1iv5od1ehqe41cf4.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1mrjdce15aeu9clp.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1mtgj1idwe59ksgj.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1nibx3ybhn8z7vbj.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1nj7n20vfwe1cqwy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1oy2tclj4vjdvnx7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1rbixd1mfdmgzkb6.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1u5v5gznrdzea0n.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1ubdh4265ripgu9v.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.1zau6ir5vjy2og51.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.20u0xjt39kdqx1yo.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.22bsb51ofa2e4tg8.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.22iun5ws4dgel98z.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.24c1vxobgcfdy5oe.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.26hshhyxz2f3hp6h.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.279jawxxzeqhl0t0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.27j1vy8vntdmtw0c.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.29botrv2ix9vitea.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.29lx5n2bvmqn6rp1.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2e703tbei2de94uc.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2f0qmmfzsdub5ar0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2g46j3ssa3j6c6x.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2ket2cfwr1amyyrb.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2kuwzav3w2i6yrww.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2lshug1qpclznxy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2mcf35396os6stje.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2n1bnnybyqg7i2lm.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2plxko4hsecqjv08.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2qda1u7f6ywdrm17.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2r2jwsotj9cpuk4i.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2rpy1yrhccrzamup.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2rzmji8dvg6zo1j9.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2vr3qqnhdlxwq7ip.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2wk42v011zw7j0jy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.2y53ou5d7i6j2hsn.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.30hjoljuy715yc4l.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.312kpc96bjc5bvlp.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.31ty796czrady509.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.31wbcgdaq4tzqgd8.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.321bcv3li5dvjv3j.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.331cms280glt09gj.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.337yw15wra82h21k.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.35x749lf8wh7l6n5.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.36bzyynivo8aea40.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.37axqtwua628bs4.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.37kn2tsy2mkw2jd7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3cv1yip04xpntspc.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3dugkdzzx7vzrtw9.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3g3kqk6kgvwarwg5.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3j0buqc9ojo825lu.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3l3wrdyfxzufolm2.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3mjadirolp7k5n2l.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3nfg2tx3vc19nx98.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3ortokliduvqnyr2.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3p23r2wtmsq4mxx5.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3pnw9nclc46b1q7m.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3qhb1ujk7nqgrosy.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3qtazuftmvghvnsv.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3qu6hcobf0uw3ql0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3to3bpmb9fe9zlah.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3vdhr6vzcfywjcb8.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3ythg8bcx4n92eni.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.3zyt6yas1nhj34xe.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.41x1virv9yqxynu2.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.41yjs3kstu2j751q.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.42ythljklpw2l1f3.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.43pwnm9f2k2jyuf0.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.43tuzgdb9t8mdv4l.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.45aa6y1ynqyyb777.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.47nuesb15fii7t4f.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.48rlycz5n8gkiv3k.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.49e3wcicaxc62359.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4afbyjxaa96rx0m3.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4ce10nr5moh5k35h.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4d6wpcu9lsw3gm89.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4eu5g95o17o7zz7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4exyc5mm87hyfpey.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4gugtr15t3ncpeik.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4i7cjnnj4dsb6n32.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4lsffpm5j31hycb6.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4ps8fqefyu48qj9t.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4rm7qs2soqyde0lc.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4rxetyxmhn4tcd8m.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4snezd1vbh6z8dov.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4vn9wxma3bfczik7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4wiu7m0gr96aoy8o.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.4x3w7e810tii30y2.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.508e6bzkz41z111p.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.50hqup4bwygr7tjz.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.511krrbi5lrfe5de.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.52mhga0fq2ujobpg.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.53wl3144u9t93u2o.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.573u6eg164n2bpl7.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.58cs62l8fwb05q3z.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.58kl1l6n3y0nik2w.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.5e3zcsmhg6rzykky.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.5et0gji9isy440jc.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.5g6adtjrwkich205.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.6vnm1h24eqmo29q.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.8h1cqw0zii8p98g.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.94ngghbbnashwwn.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.97acyvxcxwmwc25.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.aw2r92yywux6t9k.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.b4t9v4dpmkwxwvt.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.b8re1j8aqqtah4b.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.c9bncocufp0ufqg.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.ecckw8nlfr6dyb5.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.gibnzc4w5om94lb.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.gpyn54219j1v0kb.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.hiv3ik3f23z2c9v.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.hnsh1dlbh00q0rg.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.kb9nrpkhsy2vc7a.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.kuhjgdugd13rbr4.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.l1wlucppdle45de.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.q9orxzip2vg4h9i.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.quaiwmr1nak2ky4.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.qzhvrod8064wlxh.rcgu.o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.ryeq1dvvphgs35s.rcgu.o" "-o" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/deltachat-b75c95964400d913.24v1j9el4gxakfzn.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out" "-L" "/usr/local/lib" "-L" "./include/include" "-L" "./include/libs" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/backtrace-sys-b5c796e15bc3a19e/out" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/libsqlite3-sys-99e07cf08edf4af6/out" "-L" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/build/clear_on_drop-c0c2e568b42ee80e/out" "-L" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-letpan" "-lsasl2" "-lz" "-lpthread" "-Wl,-Bstatic" "-Wl,--whole-archive" "-ltools" "-Wl,--no-whole-archive" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-d4ec965eb4b5db6a.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-4508ec3acaafd124.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-ed58c777cc3ec3de.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblibsqlite3_sys-773d1fa7c628901d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libpgp-f904265594a44322.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbitfield-a434b1ec4ef8239e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtry_from-93368f6b8995886e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libhex-4fca09b7368c3d54.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbuf_redux-32bc424c12ce10bd.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libslice_deque-99e91f4fb9951137.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsafemem-f00aa4a5337cec43.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblog-d6d4baa3c334adc7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libx25519_dalek-3e660dcafbff7de4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtwofish-db44e899eeb0fd6e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha3-7346d786fc8efa2c.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libkeccak-29f25e1710c6e395.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha1-18863e0fd552f31e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libripemd160-3f40fd54462c6d80.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libmd5-91b8fad1e18fdf3f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libed25519_dalek-6c172252846001c8.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcurve25519_dalek-76e0b242af021265.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libclear_on_drop-d8cfa6c6619808cb.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libflate2-321b9dc1387074e1.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libminiz_oxide_c_api-a1e24d26821a8b18.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libminiz_oxide-58bbd443cef5d26b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libadler32-1fed2a21165df8fc.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc-4454bb148bb37cc5.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc32fast-d14acd10f702ef23.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libdes-dbf53f8883e22416.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcircular-c550070ac246141e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcfb_mode-ba67dd3e2c4ba0e7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libstream_cipher-717a69deeea138a9.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcast5-fd239192d3aaa154.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblowfish-1c68449f06c074f6.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_modes-e807e75e82018875.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libaes-fe5ec197c53b46b4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libaes_soft-d97571bee20aa5f4.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_cipher_trait-e5b99a1ac8a8de8f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libchrono-d46be364b084c969.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtime-22d385c901573364.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librsa-eca2ec4138ada035.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_bigint_dig-574f70b2a522b974.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsmallvec-52d8ea177eab744d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libzeroize-6682510bd35b0468.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsubtle-1ead1427d123ff8d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand-c9114b34bb23cdbe.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_xorshift-2150bf68735c400f.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_pcg-a767e9434c576577.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_hc-e4696596fe3da153.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_chacha-ae8525fe43c5f464.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_isaac-dd013d5f5eeec2ce.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_core-70f70c6333ea393a.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_os-015a6d1a2c07631b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_jitter-c94acf8e3f849c66.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librand_core-e65e35f617ae545b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_iter-1d324b61684e7b75.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_integer-0b44fc9e58329cfe.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnum_traits-545e2166927f798e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblazy_static-7a99494f0e27868d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcrc24-bce24251a757245b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbase64-9a7a1a5ccf1c1a47.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libnom-b2405beedc153354.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libmemchr-30885e07bb1b38f5.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libsha2-0e9a5d1352dc4a69.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libdigest-39046a1440ab91be.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libopaque_debug-041597e14f4212f0.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libfake_simd-078d26dac2eb6213.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_buffer-9254cedd34283bd7.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libgeneric_array-39e1175becad1523.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libtypenum-b80d02e4bd2791e3.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libblock_padding-e1ad2763b7d52ae6.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbyte_tools-81925955f49a6f1d.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbyteorder-f1b402fac509ca46.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libfailure-91dc1d63d804a90b.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbacktrace-cab2ff8ba0fbabdb.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libbacktrace_sys-b9c8a1681298292e.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/librustc_demangle-00e6e3e98cd968cf.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/libcfg_if-70ed510e60e38f5a.rlib" "/home/lms/src/deltachat/deltachat-core-rust/target/debug/deps/liblibc-65d742ba653606fb.rlib" "-Wl,--start-group" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-482af3334a4a2984.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-20a446a3db441f3c.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-0971fa630fca073e.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-391f380bc2050225.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-dd6cec229546fe42.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-120778b273d0c168.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-669c274efa5442f7.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-b7bdeafec2b1788b.rlib" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-e3dd59fa51b3c0cf.rlib" "-Wl,--end-group" "/home/lms/.rustup/toolchains/nightly-2019-04-19-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-2545eaff28e344bb.rlib" "-Wl,-Bdynamic" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o): in function `dc_strdup':
          /home/lms/src/deltachat/deltachat-core-rust/misc.c:10: multiple definition of `dc_strdup'; /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o):/home/lms/src/deltachat/deltachat-core-rust/misc.c:10: first defined here
          /usr/bin/ld: /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o): in function `dc_mprintf':
          /home/lms/src/deltachat/deltachat-core-rust/misc.c:26: multiple definition of `dc_mprintf'; /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o):/home/lms/src/deltachat/deltachat-core-rust/misc.c:26: first defined here
          /usr/bin/ld: /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o): in function `dc_strbuilder_cat':
          /home/lms/src/deltachat/deltachat-core-rust/misc.c:70: multiple definition of `dc_strbuilder_cat'; /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o):/home/lms/src/deltachat/deltachat-core-rust/misc.c:70: first defined here
          /usr/bin/ld: /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o): in function `dc_strbuilder_catf':
          /home/lms/src/deltachat/deltachat-core-rust/misc.c:115: multiple definition of `dc_strbuilder_catf'; /home/lms/src/deltachat/deltachat-core-rust/target/debug/build/deltachat-b43ae97170abb7a1/out/libtools.a(misc.o):/home/lms/src/deltachat/deltachat-core-rust/misc.c:115: first defined here
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

error: Could not compile `deltachat`.

To learn more, run the command again with --verbose.

Mailing lists

After reworking the internal structure in PR deltachat/deltachat-core#115 and deltachat/deltachat-core#118, supporting mailing lists should be easier. At least read-only,

The current state is that messages belonging to mailing lists are detected and are explicitly hidden, see the comment "Current state of mailing list handling" in the source.

If we decide to support mailing lists - what is needed, what are the headers, what are the corner cases? How can they be shown and used in Delta Chat? RFC 2919 and RFC 3834 are helpful, however, in practice things are often done differently and require the know-how from experienced people :)

Todo's that came into my mind for reading mailing lists - please comment below and add what i've forgotten:

  • is the current detection of mailing lists sufficient?
  • collect messages with the same List-Id: header in a separate chat
  • check, if it is needed to normalize the List-Id - in List-Id: foo <bla> - which part in practice is the id? foo <bla> or bla?
  • check, what should be used as the name for the list - foo in the example above? or the [prefix] from the subject?
  • do not add senders/recipients of belonging messages as "known contacts"
  • avoid replying to the mailing list

The messages will be shown in chronological order, this is not always optimal, however, I do not think that and extra view is worth the effort currently.

Writing mailing lists is more complicated, just some thought, this is not really part of this issue:

  • make sure replies go the Reply-To: header address (used eg. for the github issues) or to the List-Post: - is this correct? if both are unset - use From:?
  • I think Delta Chat would need an explicit reply option to set In-Reply-To: so that threads are not messed up on the normal MUAs. The reply option should be invoked by a long press on the message to reply to. However, this feature is not only useful for mailing lists :)
  • Check, how the subject should look like; I think the "Chat: bla bla bla" is not a perfect solutions for classical mailing lists, maybe we should go for a classical "Re: bla bla bla" (we can switch here as we want, the Chat:-prefix is not required anywhere for Delta Chat to work) Again, this feature is not only useful for mailing lists :)
  • DONE: Set In-Reply-To: and References: carefully
  • In general, make sure, the Delta Chat replies are "okay" to the users using classical MUAs to read/write mailing lists
  • Administration functions, Unsubscribe etc. seem to be out of scope for the first steps. OTOH, maybe a simple link to the correct page is sufficient.

Any help on these questions is very welcome. I know there are real mailing lists experts out there :)

check if network data consumption can be optimized

I was performing some tests, with DeltaChat 0.100 and K9 Mail, sending a simple(and unencrypted) message "Hello world!!!" with DeltaChat uses ~12KB while sending the same message using K9 Mail uses only 2KB of network flow(so I can send 6 messages with K9 for every email I send with DC??). This seems to be related to the fact that DC sends a copy of the email to the user itself and have to move it to the DeltaChat folder, is this message downloaded??? if so, this is not much better than the previous approach.

  • Delta Chat Version: 0.100

Port function level comments

Many of them got lost unfortunately. Should use rust doc comments for this ///

eg.

/// This is an awesome function 
fn awesome() {
}

Rotate keys automatically

Delta Chat needs a way to set expiration dates for keys it generates and rotate them automatically. I think it is the closest thing to forward secrecy that can be implemented on top of OpenPGP.

Deleting messages for which the key has expired can serve as a weak substitution for self-destructing messages requested in deltachat/deltachat-android#99.

Related issue in Autocrypt: autocrypt/autocrypt#242

Reading keys too often?

It seems we are reading keys from the db a lot more often than we need. Is this the case that we do this for each message?

Leave out Autocrypt header if encryption provably works

This morning had a chat with @dignifiedquire around when how we could leave out the Autocrypt header to reduce message size. Here is a rough idea:

  • if one of our recipients did not sent a "Chat-Version: 1.1" header with their last message, then put in the full autocrypt header like today.

  • If all recipients are on "Chat-Version: 1.1" then skip sending the Autocrypt header if the last message of each recipient was encrypted to the key i would now send as an Autocrypt header.

  • A "chat-version: 1.1" client will interpret a missing Autocrypt header as to use the last one that was sent.

For 1:1 chats this would lead to not send Autocrypt headers once both have sent a message and as long as the keys don't change. For larger chats, if some people stay silent in the group and never send a message, then I would send Autocrypt headers until they send a properly encrypted message.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.