help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error in package building : error[E0463]: can't find crate for `open


From: Hamzeh Nasajpour
Subject: Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
Date: Sun, 08 Nov 2020 23:02:10 +0330
User-agent: Cyrus-JMAP/3.3.0-570-gba0a262-fm-20201106.001-gba0a2623

Hi guys,

Anybody has any solution?  For now I face with this error in package 
installation:
```
...
   Compiling etebase-python v0.30.0 
(/tmp/guix-build-python-etebase-py-0.30.0.drv-0/etebase-0.30.0)
error: unterminated double quote string
  --> src/lib.rs:63:44
   |
63 | include!(concat!(env!("OUT_DIR"), "/glue.rs"));
   |                                            ^^^^^

error: aborting due to previous error

error: could not compile `etebase-python`.
```

This error is related to this line: 
https://github.com/etesync/etebase-py/blob/master/src/lib.rs#L62

Quick review: 
1. I want to package `etebase-py`.
2. the build system for etebase-py tries to also build etebase-rs. 
3. It's using the `setuptools-rust` for installing the rust dependencies.
4. So I packaged `etebase-py` with `cargo` build system, then I can patch the 
build system to installing the python files. In this step I faced with the 
above errors.

This is my package definition:
```
(define-public python-etebase-py
  (package
    (name "python-etebase-py")
    (version "0.30.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "etebase" version))
        (sha256
          (base32
            "1py635aqnxx3jy4x6zffriqi0l9gc2gk06h0ms91k4rs68h0gb0i"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            (substitute* "Cargo.toml"
              (("etebase = " all) "etebase = \"^0.1.0\" #"))
            (substitute* "Cargo.toml"
              (("flapigen = " all) "flapigen = \"^0.6.0-pre7\" #"))
            (substitute* "Cargo.toml"
              (("0.10.30.*") "0.10.30\" }\n"))
            (substitute* "src/lib.rs"
              (("mod fixes*") "#![feature(inner_deref)]\" \nmod fixes {"))
          #t))))
    (build-system cargo-build-system)
    (arguments
      `(#:tests? #f
        #:cargo-inputs
        (("rust-openssl" ,rust-openssl-0.10.30)
         ("rust-cpython" ,rust-cpython-0.3)
         ("rust-log" ,rust-log-0.4)
         ("rust-etebase-rs" ,rust-etebase-rs)
         ("rust-flapigen" ,rust-flapigen-0.6)        
         ("rust-env-logger" ,rust-env-logger-0.7))
        #:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'disable-rust-installation
                        (lambda* (#:key inputs #:allow-other-keys)
             (let ((openssl (assoc-ref inputs "openssl"))
                   (source  (assoc-ref %build-inputs "source"))
                   (libsodium (assoc-ref inputs "libsodium")))
               (setenv "RUST_BACKTRACE" "full")
               (setenv "RUSTC_BOOTSTRAP" "1")
               ;(setenv "OPENSSL_DIR" openssl)
               (setenv "SODIUM_LIB_DIR" (string-append libsodium "/lib")))
             #t))
             )))
    (native-inputs
      `(("libsodium" ,libsodium)
        ("python-msgpack" ,python-msgpack)
        ("openssl" ,openssl)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python-setuptools-rust" ,python-setuptools-rust)))
    (inputs
      `(("python" ,python)))
    (home-page "https://github.com/etesync/etebase-py";)
    (synopsis "A python client library for EteSync.")
    (description
              "This module provides a python API to interact with an EteSync 
server. 
It currently implements AddressBook and Calendar access, and supports two-way 
sync (both push and pull) to the server.")
    (license license:gpl3)))
```


Any idea?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]