Package Details: libdeltachat 1.149.0-1

Git Clone URL: https://aur.archlinux.org/libdeltachat.git (read-only, click to copy)
Package Base: libdeltachat
Description: Deltachat-core written in Rust
Upstream URL: https://github.com/deltachat/deltachat-core-rust/
Licenses: MPL-2.0
Submitter: jose1711
Maintainer: Pavlov
Last Packager: Pavlov
Votes: 0
Popularity: 0.000000
First Submitted: 2022-06-05 10:10 (UTC)
Last Updated: 2024-11-05 16:18 (UTC)

Dependencies (3)

Required by (1)

Sources (1)

Latest Comments

Pavlov commented on 2024-11-05 15:25 (UTC)

@dreieck when a project in Cargo is built with the --locked option it will only use the precise version of each dependency saved in Cargo.lock file. For Git dependencies this means that the precise branch and commit should be used to compile the package.

Currently, there is no option in cargo which allows us to globally override source paths for both the root projects and its workspaces, the only solution would be to replace all the source paths inside each Cargo.toml and Cargo.lock file, which could quickly become unfeasible.

dreieck commented on 2024-11-02 12:22 (UTC) (edited on 2024-11-02 12:26 (UTC) by dreieck)

Just another suggestion:

Since the cargo fetch clones whole git repositories: Can they be downloaded via source and referenced in prepare(), as the Arch Linux guidelines for Git submodules say?

Or not possible here?

Regards and thanks again!

==> Starting prepare()...
[...]
    Updating git repository `https://github.com/deltachat/rust-email`
    Updating git repository `https://github.com/async-email/encoded-words`
    Updating git repository `https://github.com/deltachat/lettre`
       Fetch [===>                     ]  16.20%, 159.12KiB/s    
[...]

Pavlov commented on 2024-10-01 14:12 (UTC)

@dreieck deltachat uses CMake to build itself, which in turn invokes cargo build to build the required crate. Unfortunately, cmake doesn't allow to separate downloads and compilation since it doesn't have a separate command to only downloading needed dependencies.

The only solution is to not use cmake and directly call cargo, however in this way $srcdir would be embedded in the generates .so file. I need some times to figure how to solve this.

dreieck commented on 2024-09-30 15:54 (UTC) (edited on 2024-09-30 15:54 (UTC) by dreieck)

Ahoj,

this PKGBUILD downloads stuff in build().

This should not happen.

Please move the cargo specific download into prepare() so that after prepare() the sources are ready & build can continue in an offline environment.

Regards and thanks for the package!

==> Starting build()...
[...]
    Updating crates.io index
    Updating git repository `https://github.com/deltachat/rust-email`
    Updating git repository `https://github.com/async-email/encoded-words`
    Updating git repository `https://github.com/deltachat/lettre`
       Fetch [=================>               ] 325 complete; 6 pending    
[...]
  Downloaded alloc-no-stdlib v2.0.4
  Downloaded asn1-rs-derive v0.4.0
[...]

MarsSeed commented on 2023-12-20 23:32 (UTC)

Please add filename extension (.tar.gz) to the local source file name.

mhellwig commented on 2023-12-07 18:11 (UTC) (edited on 2023-12-07 18:14 (UTC) by mhellwig)

compilation fails for me with the following error:

==> Validating source files with sha256sums...
    libdeltachat-1.131.8 ... Passed
==> Extracting sources...
-> Extracting libdeltachat-1.131.8 with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- The C compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done (0.6s)
-- Generating done (0.0s)
-- Build files have been written to: /usr/local/aur/makepkg/libdeltachat/src/deltachat-core-rust-1.131.8/build
[100%] Generating target/release/libdeltachat.a, target/release/libdeltachat.so, target/release/pkgconfig/deltachat.pc
error: failed to parse manifest at `/usr/local/aur/makepkg/libdeltachat/src/deltachat-core-rust-1.131.8/deltachat-ffi/Cargo.toml`

Caused by:
  namespaced features with the `dep:` prefix are only allowed on the nightly channel and requires the `-Z namespaced-features` flag on the command-line
make[2]: *** [CMakeFiles/lib_deltachat.dir/build.make:75: target/release/libdeltachat.a] Error 101
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/lib_deltachat.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

jose1711 commented on 2023-12-01 13:53 (UTC)

@kseistrup done, thanks

kseistrup commented on 2023-12-01 12:31 (UTC)

Would you mind adding

options=(!lto)

to the PKGBUILD file? The LTOFLAGS variable in my /etc/makepkg.conf configuration file is non-empty, and it seems makepkg takes this as a suggestion to enable LTO, and the compilation fails.

Adding the aforementioned options has solved the building problem here.

jose1711 commented on 2022-06-05 21:20 (UTC)

Thank you @FabioLolix for your valuable comments, implemented.

FabioLolix commented on 2022-06-05 16:30 (UTC)

Hello,

  • provides=('libdeltachat') is not needed
  • conflicts=('libdeltachat-git') is not needed, is an eventual libdeltachat-git that need to provides and conflicts libdeltachat
  • please rename source to unique like $pkgname-$pkgver instead of deltachat-core-rust
  • cmake is missing from makedepends, you're welcome to build in a clean chroot before uploading to ensuring needed depends and makedepends are met, for convenience using extra-x86_64-build from devtools package https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot