all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Error in package building : error[E0463]: can't find crate for `openssl_src`
@ 2020-10-21 11:16 Hamzeh Nasajpour
  2020-10-21 12:46 ` John Soo
  0 siblings, 1 reply; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-21 11:16 UTC (permalink / raw)
  To: SuarezMiguelC via


Hi,

I face with an issue in one library that I'm packaging by myself. This library has one dependency to `rust-openssl@0.10.30`, I updated the `rust-openssl` to `0.10.30` and now I get this error in the package building:
```
...
patch-cargo-checksums: generate-checksums for guix-vendor/rust-zstd-sys-1.4.14+zstd.1.4.3.tar.gz
phase `patch-cargo-checksums' succeeded after 76.7 seconds
starting phase `build'                                                                                                                                                                                        
   Compiling autocfg v1.0.1
   Compiling memchr v2.3.3
   Compiling lazy_static v1.4.0
   Compiling libc v0.2.71
   Compiling regex-syntax v0.6.18
   Compiling pkg-config v0.3.17
   Compiling cc v1.0.58
   Compiling bitflags v1.2.1
   Compiling openssl v0.10.30
   Compiling foreign-types-shared v0.1.1
   Compiling cpython v0.3.0
   Compiling cfg-if v0.1.10
   Compiling thread_local v1.0.1
   Compiling foreign-types v0.3.2
   Compiling aho-corasick v0.7.13
   Compiling num-traits v0.2.12
   Compiling regex v1.3.9
   Compiling openssl-sys v0.9.58
error[E0463]: can't find crate for `openssl_src`
 --> /tmp/guix-build-python-etebase-py-0.30.0.drv-0/etebase-0.30.0/guix-vendor/rust-openssl-sys-0.9.58.tar.xz/build/main.rs:6:1
  |
6 | extern crate openssl_src;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `openssl-sys`.
warning: build failed, waiting for other jobs to finish...
error: build failed
command "cargo" "build" "--features" "" "--release" failed with status 101
builder for `/gnu/store/5svg5z5s850j9s7wr6dmdh2kak9947hb-python-etebase-py-0.30.0.drv' failed with exit code 1

```

* I'm packaging the `etebase-py` : https://github.com/etesync/etebase-py/
* The `rust-openssl` dependency defined here: https://github.com/etesync/etebase-py/blob/master/Cargo.toml#L22
* I also packaged the `rust-openssl-src` and add it as dependency to my package definition but not resolved


Any idea? 



Regards,
Hamzeh


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 11:16 Error in package building : error[E0463]: can't find crate for `openssl_src` Hamzeh Nasajpour
@ 2020-10-21 12:46 ` John Soo
  2020-10-21 13:37   ` Hamzeh Nasajpour
  0 siblings, 1 reply; 11+ messages in thread
From: John Soo @ 2020-10-21 12:46 UTC (permalink / raw)
  To: Hamzeh Nasajpour; +Cc: SuarezMiguelC via

     Hello Hamzeh,  

  
Take a look at gnu/packages/crates-io.scm for other examples of rust-openssl. We try to avoid vendored sources. Recent versions of rust-openssl-sys also complicate this by requiring particular versions of openssl.    While it’s nice that they are explicit about the dependency, we don’t have them in the package set.   
  

  
Finally and probably most immediately useful to you, check out gnu/packages/rust-apps.scm. You may need to set the OPENSSL_DIR environment variable to the location of the openssl dependency.
  

  
I see the “vendored” feature in the Cargo.toml that makes me think this may not work, but that would be where I start.   
  

  
Good luck,
  

  
John


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 12:46 ` John Soo
@ 2020-10-21 13:37   ` Hamzeh Nasajpour
  2020-10-21 13:40     ` John Soo
  0 siblings, 1 reply; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-21 13:37 UTC (permalink / raw)
  To: John Soo; +Cc: SuarezMiguelC via

Hello John,

Thanks for your quick reply.

But as you see in `Cargo.toml`, this feature mentioned and I think it's needed. In the other side setting the `OPENSSL_DIR` didn't resolve my issue.

Do you have any other suggestion?

Can I repackage `rust-openssl-sys-0.9` and remove this line in the package definition? (Sorry I'm not expert in rust and I don't know what's the `vendored` feature, but I need this package urgently - `etebasepy` )

```
      (patches (search-patches "rust-openssl-sys-no-vendor.patch"))
``` 


Regards,
Hamzeh


On Wed, Oct 21, 2020, at 4:16 PM, John Soo wrote:
> Hello Hamzeh,
> 
> Take a look at gnu/packages/crates-io.scm for other examples of 
> rust-openssl. We try to avoid vendored sources. Recent versions of 
> rust-openssl-sys also complicate this by requiring particular versions 
> of openssl.  While it’s nice that they are explicit about the 
> dependency, we don’t have them in the package set. 
> 
> Finally and probably most immediately useful to you, check out 
> gnu/packages/rust-apps.scm. You may need to set the OPENSSL_DIR 
> environment variable to the location of the openssl dependency.
> 
> I see the “vendored” feature in the Cargo.toml that makes me think this 
> may not work, but that would be where I start. 
> 
> Good luck,
> 
> John


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 13:37   ` Hamzeh Nasajpour
@ 2020-10-21 13:40     ` John Soo
  2020-10-21 13:46       ` Hamzeh Nasajpour
  0 siblings, 1 reply; 11+ messages in thread
From: John Soo @ 2020-10-21 13:40 UTC (permalink / raw)
  To: Hamzeh Nasajpour; +Cc: SuarezMiguelC via

     Hello Hamzeh, 

 
It would be preferable if you can avoid using the vendored openssl. Did you add openssl as an input to the package?  
 

 
Can you share what you have so far please?
 

 
- John
 

 
P.s. please avoid bottom quoting on the list
     

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 13:40     ` John Soo
@ 2020-10-21 13:46       ` Hamzeh Nasajpour
  2020-10-21 13:57         ` Hamzeh Nasajpour
  0 siblings, 1 reply; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-21 13:46 UTC (permalink / raw)
  To: John Soo; +Cc: SuarezMiguelC via

This is my package definition till now. The repository of the package is here:
https://github.com/etesync/etebase-py/

Also I should to say I package these (since they aren't available in the upstream packages):
* openssl@0.10.30
* cpython@0.3
* etebase-rs
* flapigen-0.6

I didn't attach them here for simplicity.

```
(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 = "))
            (substitute* "Cargo.toml"
              (("flapigen = " all) "flapigen = \"^0.6.0-pre7\" #"))
            (substitute* "Cargo.toml"
              (("0.10.30\"" all) "0.10.30\"}# "))
            #t))))
    (build-system cargo-build-system)
    (arguments
      `(#:tests? #f
        #:cargo-inputs
        (("rust-openssl" ,rust-openssl-0.10)
         ("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 'patch-env-var
			(lambda* (#:key inputs #:allow-other-keys)
             (let ((openssl (assoc-ref inputs "openssl")))
               (invoke "rm" "setup.py")
               (setenv "RUST_BACKTRACE" "full")
               (setenv "OPENSSL_DIR" openssl))
             #t))
             )))
    (native-inputs
      `(("openssl" ,openssl)
        ("python-msgpack" ,python-msgpack)
        ("python-setuptools-rust" ,python-setuptools-rust)))
    (inputs
      `(("python" ,python)
;        ("rust-etebase-rs" ,rust-etebase-rs)
        ))
    (home-page "https://github.com/etesync/etebase-rs")
    (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)))
```


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 13:46       ` Hamzeh Nasajpour
@ 2020-10-21 13:57         ` Hamzeh Nasajpour
  2020-10-21 14:37           ` John Soo
  2020-10-24 19:47           ` Efraim Flashner
  0 siblings, 2 replies; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-21 13:57 UTC (permalink / raw)
  To: SuarezMiguelC via

I'm so sorry I had a mistake in the previous package definition, I was in testing. Please remove these lines in the previous definition:
```
            (substitute* "Cargo.toml"
              (("0.10.30\"" all) "0.10.30\"}# "))
```

It means that my package definition is:
```
(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 = "))
            (substitute* "Cargo.toml"
              (("flapigen = " all) "flapigen = \"^0.6.0-pre7\" #"))
            #t))))
    (build-system cargo-build-system)
    (arguments
      `(#:tests? #f
        #:cargo-inputs
        (("rust-openssl" ,rust-openssl-0.10)
         ("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 'patch-env-var
(lambda* (#:key inputs #:allow-other-keys)
             (let ((openssl (assoc-ref inputs "openssl")))
               (invoke "rm" "setup.py")
               (setenv "RUST_BACKTRACE" "full")
               (setenv "OPENSSL_DIR" openssl))
             #t))
             )))
    (native-inputs
      `(("openssl" ,openssl)
        ("python-msgpack" ,python-msgpack)
        ("python-setuptools-rust" ,python-setuptools-rust)))
    (inputs
      `(("python" ,python)
;        ("rust-etebase-rs" ,rust-etebase-rs)
        ))
    (home-page "https://github.com/etesync/etebase-rs")
    (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)))
```

With above definition, I set the `OPENSSL_DIR` and add `openssl` as input but the problem not resolved:
```
phase `patch-cargo-checksums' succeeded after 57.8 seconds
starting phase `build'                                                                                                                                                                                                                      
   Compiling autocfg v1.0.1
   Compiling memchr v2.3.3
   Compiling lazy_static v1.4.0
   Compiling regex-syntax v0.6.18
   Compiling libc v0.2.71
   Compiling cc v1.0.58
   Compiling pkg-config v0.3.17
   Compiling bitflags v1.2.1
   Compiling openssl v0.10.30
   Compiling cpython v0.3.0
   Compiling foreign-types-shared v0.1.1
   Compiling cfg-if v0.1.10
   Compiling thread_local v1.0.1
   Compiling foreign-types v0.3.2
   Compiling aho-corasick v0.7.13
   Compiling num-traits v0.2.12
   Compiling regex v1.3.9
   Compiling openssl-sys v0.9.58
error[E0463]: can't find crate for `openssl_src`
 --> /tmp/guix-build-python-etebase-py-0.30.0.drv-0/etebase-0.30.0/guix-vendor/rust-openssl-sys-0.9.58.tar.xz/build/main.rs:6:1
  |
6 | extern crate openssl_src;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `openssl-sys`.
warning: build failed, waiting for other jobs to finish...
error: build failed
```



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 13:57         ` Hamzeh Nasajpour
@ 2020-10-21 14:37           ` John Soo
  2020-10-22  8:36             ` Hamzeh Nasajpour
  2020-10-24 19:47           ` Efraim Flashner
  1 sibling, 1 reply; 11+ messages in thread
From: John Soo @ 2020-10-21 14:37 UTC (permalink / raw)
  To: Hamzeh Nasajpour; +Cc: SuarezMiguelC via

     Hi Hamzeh, 

 
First, make sure openssl is a standard input instead of a native one. I am not sure that will fix the problem here though. Most likely we will need an openssl-src package that uses the system source.
 

 
Good luck,
 

 
John
     

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 14:37           ` John Soo
@ 2020-10-22  8:36             ` Hamzeh Nasajpour
  0 siblings, 0 replies; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-22  8:36 UTC (permalink / raw)
  To: John Soo; +Cc: SuarezMiguelC via

Hello John,

Thanks for your following up.

I put the `openssl` in `inputs` too and the problem wasn't resolved. I also I packaged the `openssl-src` and repackage the `openssl-sys` and this is didn't resolved the problem too. 

The point is with the following package definitions the `rust-openssl-sys` will be build/installed without any error, but in the `etebase-py` building/installation I get the previous error.

```
(define-public rust-openssl-src-111.0.1
  (package
    (name "rust-openssl-src")
    (version "111.0.1+1.1.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "openssl-src" version))
       (file-name
        (string-append name "-" version ".tar.gz"))
       (sha256
        (base32
         "1gpw4zdsi27hg7y4i9xilgfyzp9i56ch5gs64r5ab1gxi3caxvfi"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs
       (("rust-gcc" ,rust-gcc-0.3))))
    (home-page "https://github.com/sfackler/rust-openssl")
    (synopsis "OpenSSL bindings")
    (description "OpenSSL bindings.")
    (license license:asl2.0)))

(define-public rust-openssl-sys-0.9
  (package
    (name "rust-openssl-sys")
    (version "0.9.58")
    (source
      (origin
        (method url-fetch)
        (uri (crate-uri "openssl-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1pkq3x8w16kqvkg75g4w7nny56w9clssww0ibpzg015n153xnhm8"))))
    (build-system cargo-build-system)
    (arguments
     `(#:cargo-inputs
       (("rust-libc" ,rust-libc-0.2)
        ;; Build dependencies:
        ("rust-autocfg" ,rust-autocfg-1.0)
        ("rust-cc" ,rust-cc-1)
        ("rust-pkg-config" ,rust-pkg-config-0.3)
        ("rust-openssl-src" ,rust-openssl-src-111.0.1)
        ("rust-vcpkg" ,rust-vcpkg-0.2))))
    (native-inputs
     `(("openssl" ,openssl)
       ("pkg-config" ,pkg-config)))
    (home-page "https://github.com/sfackler/rust-openssl")
    (synopsis "FFI bindings to OpenSSL")
    (description
     "This package provides FFI bindings to OpenSSL for use in rust crates.")
    (license license:expat)))
```


```
phase `patch-cargo-checksums' succeeded after 69.7 seconds
starting phase `build'                                                                                                                                                                                                                      
   Compiling autocfg v1.0.1
   Compiling memchr v2.3.3
   Compiling lazy_static v1.4.0
   Compiling regex-syntax v0.6.18
   Compiling libc v0.2.71
   Compiling pkg-config v0.3.17
   Compiling cc v1.0.58
   Compiling bitflags v1.2.1
   Compiling foreign-types-shared v0.1.1
   Compiling openssl v0.10.30
   Compiling cpython v0.3.0
   Compiling cfg-if v0.1.10
   Compiling thread_local v1.0.1
   Compiling foreign-types v0.3.2
   Compiling aho-corasick v0.7.13
   Compiling num-traits v0.2.12
   Compiling regex v1.3.9
   Compiling openssl-sys v0.9.58
error[E0463]: can't find crate for `openssl_src`
 --> /tmp/guix-build-python-etebase-py-0.30.0.drv-0/etebase-0.30.0/guix-vendor/rust-openssl-sys-0.9.58.tar.xz/build/main.rs:6:1
  |
6 | extern crate openssl_src;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `openssl-sys`.
warning: build failed, waiting for other jobs to finish...
error: build failed
command "cargo" "build" "--features" "" "--release" failed with status 101

```


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-21 13:57         ` Hamzeh Nasajpour
  2020-10-21 14:37           ` John Soo
@ 2020-10-24 19:47           ` Efraim Flashner
  2020-10-25 10:02             ` Hamzeh Nasajpour
  1 sibling, 1 reply; 11+ messages in thread
From: Efraim Flashner @ 2020-10-24 19:47 UTC (permalink / raw)
  To: Hamzeh Nasajpour; +Cc: SuarezMiguelC via

[-- Attachment #1: Type: text/plain, Size: 4413 bytes --]

On Wed, Oct 21, 2020 at 05:27:16PM +0330, Hamzeh Nasajpour wrote:
> I'm so sorry I had a mistake in the previous package definition, I was in testing. Please remove these lines in the previous definition:
> ```
>             (substitute* "Cargo.toml"
>               (("0.10.30\"" all) "0.10.30\"}# "))
> ```
> 
> It means that my package definition is:
> ```
> (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 = "))
>             (substitute* "Cargo.toml"
>               (("flapigen = " all) "flapigen = \"^0.6.0-pre7\" #"))

I'd add in a substitution here for openssl like this (untested):
               ;; Don't depend on vendored sources
               (("0.10.30.*") "0.10.30\" }\n")

>             #t))))
>     (build-system cargo-build-system)
>     (arguments
>       `(#:tests? #f
>         #:cargo-inputs
>         (("rust-openssl" ,rust-openssl-0.10)
>          ("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 'patch-env-var
> (lambda* (#:key inputs #:allow-other-keys)
>              (let ((openssl (assoc-ref inputs "openssl")))
>                (invoke "rm" "setup.py")
>                (setenv "RUST_BACKTRACE" "full")
>                (setenv "OPENSSL_DIR" openssl))
>              #t))
>              )))
>     (native-inputs
>       `(("openssl" ,openssl)
>         ("python-msgpack" ,python-msgpack)
>         ("python-setuptools-rust" ,python-setuptools-rust)))
>     (inputs
>       `(("python" ,python)
> ;        ("rust-etebase-rs" ,rust-etebase-rs)
>         ))
>     (home-page "https://github.com/etesync/etebase-rs")
>     (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)))
> ```
> 
> With above definition, I set the `OPENSSL_DIR` and add `openssl` as input but the problem not resolved:
> ```
> phase `patch-cargo-checksums' succeeded after 57.8 seconds
> starting phase `build'                                                                                                                                                                                                                      
>    Compiling autocfg v1.0.1
>    Compiling memchr v2.3.3
>    Compiling lazy_static v1.4.0
>    Compiling regex-syntax v0.6.18
>    Compiling libc v0.2.71
>    Compiling cc v1.0.58
>    Compiling pkg-config v0.3.17
>    Compiling bitflags v1.2.1
>    Compiling openssl v0.10.30
>    Compiling cpython v0.3.0
>    Compiling foreign-types-shared v0.1.1
>    Compiling cfg-if v0.1.10
>    Compiling thread_local v1.0.1
>    Compiling foreign-types v0.3.2
>    Compiling aho-corasick v0.7.13
>    Compiling num-traits v0.2.12
>    Compiling regex v1.3.9
>    Compiling openssl-sys v0.9.58
> error[E0463]: can't find crate for `openssl_src`
>  --> /tmp/guix-build-python-etebase-py-0.30.0.drv-0/etebase-0.30.0/guix-vendor/rust-openssl-sys-0.9.58.tar.xz/build/main.rs:6:1
>   |
> 6 | extern crate openssl_src;
>   | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
> 
> error: aborting due to previous error
> 
> For more information about this error, try `rustc --explain E0463`.
> error: could not compile `openssl-sys`.
> warning: build failed, waiting for other jobs to finish...
> error: build failed
> ```
> 
> 

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-24 19:47           ` Efraim Flashner
@ 2020-10-25 10:02             ` Hamzeh Nasajpour
  2020-11-08 19:32               ` Hamzeh Nasajpour
  0 siblings, 1 reply; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-10-25 10:02 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: SuarezMiguelC via

Hi Efraim,

> I'd add in a substitution here for openssl like this (untested):
>                ;; Don't depend on vendored sources
>                (("0.10.30.*") "0.10.30\" }\n")
> 

Thanks, I added it and this step passed and now I don't get the previous error in building. 

Now I faced with another issue:
```
...
   Compiling serde_bytes v0.11.5
   Compiling rmp-serde v0.14.3
   Compiling sodiumoxide v0.2.6
   Compiling reqwest v0.10.4
   Compiling etebase v0.1.0
   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/64bce73fe2a9a6c82923cd3cedc9210b874f5c01/src/lib.rs#L62

I don't know what's this. And what should I do? Do you have any idea?


Regards,
Hamzeh


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Error in package building : error[E0463]: can't find crate for `openssl_src`
  2020-10-25 10:02             ` Hamzeh Nasajpour
@ 2020-11-08 19:32               ` Hamzeh Nasajpour
  0 siblings, 0 replies; 11+ messages in thread
From: Hamzeh Nasajpour @ 2020-11-08 19:32 UTC (permalink / raw)
  To: SuarezMiguelC via

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?


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-11-08 19:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-21 11:16 Error in package building : error[E0463]: can't find crate for `openssl_src` Hamzeh Nasajpour
2020-10-21 12:46 ` John Soo
2020-10-21 13:37   ` Hamzeh Nasajpour
2020-10-21 13:40     ` John Soo
2020-10-21 13:46       ` Hamzeh Nasajpour
2020-10-21 13:57         ` Hamzeh Nasajpour
2020-10-21 14:37           ` John Soo
2020-10-22  8:36             ` Hamzeh Nasajpour
2020-10-24 19:47           ` Efraim Flashner
2020-10-25 10:02             ` Hamzeh Nasajpour
2020-11-08 19:32               ` Hamzeh Nasajpour

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.