Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None)
ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923
Log data follows:
| DEBUG: Executing shell function do_compile
| Updating crates.io index
| warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
| warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
| error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)`
|
| Caused by:
| failed to fetch `https://github.com/rust-lang/crates.io-index`
|
| Caused by:
| network failure seems to have happened
| if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
| https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
|
| Caused by:
| failed to resolve address for github.com: Name or service not known; class=Net (12)
| WARNING: exit code 101 from a shell command.
ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING =
"1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
SRC_URI="\
file://${bl_path}/programmer-ui/dist \
file://${config_path}/files/session \
file:///tmp/baroloop \
"
# crate://crates.io/tokio/1 \
# crate://crates.io/war/0.3 \
# crate://crates.io/byte/1 \
# crate://crates.io/log/0.4.8 \
# crate://crates.io/serde_json/1.0.75 \
# crate://crates.io/serde/1.0.133 \
# crate://crates.io/docopt/1.1.0 \
# crate://crates.io/colored/1.9.3 \
# crate://crates.io/chrono/0.4.11 \
# crate://crates.io/battery/0.7.7 \
# crate://crates.io/uuid/0.8.2 \
# crate://crates.io/thiserror/1.0 \
# crate://crates.io/anyhow/1 \
# crate://crates.io/clap/3.0 \
# crate://crates.io/futures/0.3 \
# crate://crates.io/wry/0.6.1
S = "${WORKDIR}"
RDEPENDS:${PN} = "\
eudev \
dbus \
"
DEPENDS = "\
eudev \
dbus \
"
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\
/home/neuro/serve \
/home/neuro/dist/** \
${sysconfdir}/mini_x/session \
"
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() {
oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config
sed -i '/\[http\]/d' $CARGO_HOME/config
sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}"
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true
cd ${S}/tmp/baroloop/programmer-rust/
cargo build --release --bin serve
}
do_install() {
# this isn_t reached anyway
# ...
}
--
Mit freundlichen Grüßen neuroloop GmbH
i.A. Felix Knorr
Senior Software Developer
--------------------------------------
neuroloop GmbH
Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Accessing the network is not allowed from do_compile, or any other task for that matter. You need to provide every needed item in SRC_URI and rely on standard fetchers to form a complete source tree.
Alex
toggle quoted messageShow quoted text
On Thu, 12 May 2022 at 15:09, Felix Knorr <fknorr@...> wrote: Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://github.com/rust-lang/crates.io-index` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Oh I see, thanks for the info.
toggle quoted messageShow quoted text
On 12.05.22 15:15, Alexander Kanavin wrote: Accessing the network is not allowed from do_compile, or any other task for that matter. You need to provide every needed item in SRC_URI and rely on standard fetchers to form a complete source tree.
Alex
On Thu, 12 May 2022 at 15:09, Felix Knorr <fknorr@...> wrote:
Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://github.com/rust-lang/crates.io-index` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
On Thu, May 12, 2022 at 2:09 PM Felix Knorr <fknorr@...> wrote: Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
The HEAD of cargo-bitbake works fine for 2021 for us. When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://github.com/rust-lang/crates.io-index` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
-- Alex Kiernan
|
|
toggle quoted messageShow quoted text
-----Original Message----- From: yocto@... <yocto@...> On Behalf Of Felix Knorr Sent: Thursday, May 12, 2022 10:10 PM To: yocto@... Subject: [yocto] Problems with recipe for our Rust-Software
Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky- linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0- r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0- r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://github.com/rust-lang/crates.io-index <https://protect2.fireeye.com/v1/url?k=68eaf684-3771ce79-68eb7dcb- 000babff317b-44b4b436f9e0edc0&q=1&e=3342104f-017d-4ac5-9d70- f1208c419a68&u=https%3A%2F%2Fgithub.com%2Frust-lang%2Fcrates.io-index> ` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch- with-cli | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta- main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Hey,
I'm now using the latest cargo-bitbake (thanks for the tip), but I'm still having problems. One of the dependencies needs pkg-config to build, and the error implies that it couldn't be found. To verify this, I added the following do_compile function:
do_compile() {
bbnote "pkg-config: $(which pkg-config)"
}
and checked the log.do_compile file after running which just says
DEBUG: Executing shell function do_compile
NOTE: pkg-config:
DEBUG: Shell function do_compile finished
so it's definitely not there. I added DEPENDS += " dbus (>= 1.6) pkgconf" to the recipe, but that didn't help.
On 12.05.22 15:28, Alex Kiernan wrote:
On Thu, May 12, 2022 at 2:09 PM Felix Knorr <fknorr@...> wrote:
Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
The HEAD of cargo-bitbake works fine for 2021 for us.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None)
ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923
Log data follows:
| DEBUG: Executing shell function do_compile
| Updating crates.io index
| warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
| warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12)
| error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)`
|
| Caused by:
| failed to fetch `https://github.com/rust-lang/crates.io-index`
|
| Caused by:
| network failure seems to have happened
| if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
| https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
|
| Caused by:
| failed to resolve address for github.com: Name or service not known; class=Net (12)
| WARNING: exit code 101 from a shell command.
ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
SRC_URI="\
file://${bl_path}/programmer-ui/dist \
file://${config_path}/files/session \
file:///tmp/baroloop \
"
# crate://crates.io/tokio/1 \
# crate://crates.io/war/0.3 \
# crate://crates.io/byte/1 \
# crate://crates.io/log/0.4.8 \
# crate://crates.io/serde_json/1.0.75 \
# crate://crates.io/serde/1.0.133 \
# crate://crates.io/docopt/1.1.0 \
# crate://crates.io/colored/1.9.3 \
# crate://crates.io/chrono/0.4.11 \
# crate://crates.io/battery/0.7.7 \
# crate://crates.io/uuid/0.8.2 \
# crate://crates.io/thiserror/1.0 \
# crate://crates.io/anyhow/1 \
# crate://crates.io/clap/3.0 \
# crate://crates.io/futures/0.3 \
# crate://crates.io/wry/0.6.1
S = "${WORKDIR}"
RDEPENDS:${PN} = "\
eudev \
dbus \
"
DEPENDS = "\
eudev \
dbus \
"
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\
/home/neuro/serve \
/home/neuro/dist/** \
${sysconfdir}/mini_x/session \
"
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() {
oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config
sed -i '/\[http\]/d' $CARGO_HOME/config
sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}"
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true
cd ${S}/tmp/baroloop/programmer-rust/
cargo build --release --bin serve
}
do_install() {
# this isn_t reached anyway
# ...
}
--
Mit freundlichen Grüßen neuroloop GmbH
i.A. Felix Knorr
Senior Software Developer
--------------------------------------
neuroloop GmbH
Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
--
Mit freundlichen Grüßen neuroloop GmbH
i.A. Felix Knorr
Senior Software Developer
--------------------------------------
neuroloop GmbH
Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Hi Felix, On 5/13/22 09:56, Felix Knorr wrote: Hey, I'm now using the latest cargo-bitbake (thanks for the tip), but I'm still having problems. One of the dependencies needs pkg-config to build, and the error implies that it couldn't be found. To verify this, I added the following do_compile function: do_compile() { bbnote "pkg-config: $(which pkg-config)" } and checked the log.do_compile file after running which just says DEBUG: Executing shell function do_compile NOTE: pkg-config: DEBUG: Shell function do_compile finished so it's definitely not there. I added DEPENDS += " dbus (>= 1.6) pkgconf" to the recipe, but that didn't help.
Because it's supposed to be pkgconfig-native in DEPENDS, which can be done by just adding: inherit pkgconfig to your recipe. Cheers, Quentin On 12.05.22 15:28, Alex Kiernan wrote: On Thu, May 12, 2022 at 2:09 PM Felix Knorr <fknorr@...><mailto:fknorr@...> wrote: Hey, I'm struggling with a recipe to build our rust project. I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand. The HEAD of cargo-bitbake works fine for 2021 for us. When I run bitbake for the recipe, it will error out with the following error message: ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_rust-2Dlang_crates.io-2Dindex&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=vjlTVOHFeWmwaLHUilCKAh_c4dOX92W-oBIEor_tiR8&e= ` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://urldefense.proofpoint.com/v2/url?u=https-3A__doc.rust-2Dlang.org_cargo_reference_config.html-23netgit-2Dfetch-2Dwith-2Dcli&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=aaYEIIOtHpjY7BkTDEi5V9-gt8kNkmRnhhAIUBrpOPI&e= | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1' However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env) if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out). If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me. PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig This is the recipe: cargo SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = "" SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}" RDEPENDS:${PN} = "\ eudev \ dbus \ " DEPENDS = "\ eudev \ dbus \ " # INSANE_SKIP:${PN} += "file-rdeps" FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ " CARGO_DISABLE_BITBAKE_VENDORING = "1" do_compile() { oe_cargo_fix_env sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}" export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve } do_install() { # this isn_t reached anyway # ... } -- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany Amtsgericht Freiburg HRB 713935 Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments. -- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany Amtsgericht Freiburg HRB 713935 Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Hey, thanks for your help, it's working now. But could you explain, why adding pkgconf to DEPENDS didn't work?
toggle quoted messageShow quoted text
On 13.05.22 10:03, Quentin Schulz wrote: Hi Felix,
On 5/13/22 09:56, Felix Knorr wrote:
Hey,
I'm now using the latest cargo-bitbake (thanks for the tip), but I'm still having problems. One of the dependencies needs pkg-config to build, and the error implies that it couldn't be found. To verify this, I added the following do_compile function:
do_compile() { bbnote "pkg-config: $(which pkg-config)" }
and checked the log.do_compile file after running which just says
DEBUG: Executing shell function do_compile NOTE: pkg-config: DEBUG: Shell function do_compile finished
so it's definitely not there. I added DEPENDS += " dbus (>= 1.6) pkgconf" to the recipe, but that didn't help.
Because it's supposed to be pkgconfig-native in DEPENDS, which can be done by just adding: inherit pkgconfig to your recipe.
Cheers, Quentin
On 12.05.22 15:28, Alex Kiernan wrote:
On Thu, May 12, 2022 at 2:09 PM Felix Knorr <fknorr@...><mailto:fknorr@...> wrote:
Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
The HEAD of cargo-bitbake works fine for 2021 for us.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_rust-2Dlang_crates.io-2Dindex&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=vjlTVOHFeWmwaLHUilCKAh_c4dOX92W-oBIEor_tiR8&e= ` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://urldefense.proofpoint.com/v2/url?u=https-3A__doc.rust-2Dlang.org_cargo_reference_config.html-23netgit-2Dfetch-2Dwith-2Dcli&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=aaYEIIOtHpjY7BkTDEi5V9-gt8kNkmRnhhAIUBrpOPI&e= | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Hi Felix, On 5/13/22 11:25, Felix Knorr wrote: Hey, thanks for your help, it's working now. But could you explain, why adding pkgconf to DEPENDS didn't work?
Sure! pkgconf-native very likely would have worked, so I'll not talk about pkgconf vs pkgconfig (also because I don't know much about them :) ). There are multiple "flavors" for recipes. The two most common ones are target and host, in Yocto terms, "normal" recipes (or target recipe) and native recipes. The difference between both is fundamental. Target recipes are going to be built so that they can be run on the target hardware (usually an embedded device, which very often differs from the CPU architecture used to compile the image). Native recipes are going to be built so their outcome can be used on the CPU architecture used by your building machine (aka host). This is called native because the architecture used to compile something is the same as the architecture of this something after being built. Target recipes are built on your build machine, therefore, you need software compiled for your host architecture to be able to cross-compile for the target (Yocto build system is running on your machine, but the result is supposed to run on a different machine). This means that target recipes depend on native recipes. For example, if you have a cmake-based project you want to use on your target, you need to run cmake on your build machine. This means cmake needs to be compiled for your build machine. Therefore, your cmake-based project recipe will require cmake-native as dependency. Any non-target recipe will not make it to the target filesystem and will only be used during compilation for binaries **EXECUTED during compilation**. By the way, just use inherit pkgconfig instead of adding the dependency manually, it's what is done in poky for all recipes :) (it's doing the same thing, but cleaner, and if some modifications are required later on to fix some issues with pkgconfig, you'll not need to do it yourself and will get the fixes when updating your yocto version). Let me know if I should rephrase some parts, Cheers, Quentin On 13.05.22 10:03, Quentin Schulz wrote:
Hi Felix,
On 5/13/22 09:56, Felix Knorr wrote:
Hey,
I'm now using the latest cargo-bitbake (thanks for the tip), but I'm still having problems. One of the dependencies needs pkg-config to build, and the error implies that it couldn't be found. To verify this, I added the following do_compile function:
do_compile() { bbnote "pkg-config: $(which pkg-config)" }
and checked the log.do_compile file after running which just says
DEBUG: Executing shell function do_compile NOTE: pkg-config: DEBUG: Shell function do_compile finished
so it's definitely not there. I added DEPENDS += " dbus (>= 1.6) pkgconf" to the recipe, but that didn't help.
Because it's supposed to be pkgconfig-native in DEPENDS, which can be done by just adding: inherit pkgconfig to your recipe.
Cheers, Quentin
On 12.05.22 15:28, Alex Kiernan wrote:
On Thu, May 12, 2022 at 2:09 PM Felix Knorr <fknorr@...><mailto:fknorr@...> wrote:
Hey,
I'm struggling with a recipe to build our rust project.
I cannot use cargo-bitbake because we use the 2021 edition. Also the project is quite complex. We have one repository with 4 different crates, some of them are linking c code. I'm trying to create a recipe by hand.
The HEAD of cargo-bitbake works fine for 2021 for us.
When I run bitbake for the recipe, it will error out with the following error message:
ERROR: serve-1.0.0-r0 do_compile: ExecutionError('/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/run.do_compile.400923', 101, None, None) ERROR: Logfile of failure stored in: /home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/temp/log.do_compile.400923 Log data follows: | DEBUG: Executing shell function do_compile | Updating crates.io index | warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name or service not known; class=Net (12) | error: failed to get `anyhow` as a dependency of package `nlprog v0.1.0 (/home/felix/git/poky/build/tmp/work/core2-64-poky-linux/serve/1.0.0-r0/tmp/baroloop/programmer-rust/nlprog)` | | Caused by: | failed to fetch `https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_rust-2Dlang_crates.io-2Dindex&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=vjlTVOHFeWmwaLHUilCKAh_c4dOX92W-oBIEor_tiR8&e= ` | | Caused by: | network failure seems to have happened | if a proxy or similar is necessary `net.git-fetch-with-cli` may help here | https://urldefense.proofpoint.com/v2/url?u=https-3A__doc.rust-2Dlang.org_cargo_reference_config.html-23netgit-2Dfetch-2Dwith-2Dcli&d=DwIGaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=KVxrF11PIYLER0S0KZ5nJTg8Ut1pYlTpWVAglebyRABm3CAb_QrF6YGl4ooo6kcf&s=aaYEIIOtHpjY7BkTDEi5V9-gt8kNkmRnhhAIUBrpOPI&e= | | Caused by: | failed to resolve address for github.com: Name or service not known; class=Net (12) | WARNING: exit code 101 from a shell command. ERROR: Task (/home/felix/git/baroloop/programmer-tablet/layers/meta-main/recipes-core/programmer/serve_1.0.0.bb:do_compile) failed with exit code '1'
However, if I run the devshell for the recipe and run cargo, it will at least be able to do the fetching. (It will currently fail in the linker step, but I assume thats because I haven't executed oe_cargo_fix_env)
if I don't remove the http.multiplexing=false from the cargo config, it will just hang forever in the devshell (but not error out).
If I set export CARGO_NET_GIT_FETCH_WITH_CLI=true the error is slightly different, but the git call that is then displayed also works in the devshell. Also using a crate://-fetcher doesn't work, which is why I added the CARGO_DISABLE_BITBAKE_VENDORING = "1" I've been fighting this for hours and can't come up with anything. I hope you can help me.
PS: I'm using kirkstone, and I'm not having any url sections in my .gitconfig
This is the recipe:
cargo
SUMMARY = "Copy prebuild programmer serve into the image" LICENSE = "CLOSED" LIC_FILES_CHKSUM = ""
SRC_URI="\ file://${bl_path}/programmer-ui/dist \ file://${config_path}/files/session \ file:///tmp/baroloop \ " # crate://crates.io/tokio/1 \ # crate://crates.io/war/0.3 \ # crate://crates.io/byte/1 \ # crate://crates.io/log/0.4.8 \ # crate://crates.io/serde_json/1.0.75 \ # crate://crates.io/serde/1.0.133 \ # crate://crates.io/docopt/1.1.0 \ # crate://crates.io/colored/1.9.3 \ # crate://crates.io/chrono/0.4.11 \ # crate://crates.io/battery/0.7.7 \ # crate://crates.io/uuid/0.8.2 \ # crate://crates.io/thiserror/1.0 \ # crate://crates.io/anyhow/1 \ # crate://crates.io/clap/3.0 \ # crate://crates.io/futures/0.3 \ # crate://crates.io/wry/0.6.1 S = "${WORKDIR}"
RDEPENDS:${PN} = "\ eudev \ dbus \ "
DEPENDS = "\ eudev \ dbus \ "
# INSANE_SKIP:${PN} += "file-rdeps"
FILES:${PN} = "\ /home/neuro/serve \ /home/neuro/dist/** \ ${sysconfdir}/mini_x/session \ "
CARGO_DISABLE_BITBAKE_VENDORING = "1"
do_compile() { oe_cargo_fix_env
sed -i '/multiplexing = false/d' $CARGO_HOME/config sed -i '/\[http\]/d' $CARGO_HOME/config sed -i '/cainfo/d' $CARGO_HOME/config
export RUSTFLAGS="${RUSTFLAGS}" export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
export CARGO_NET_GIT_FETCH_WITH_CLI=true cd ${S}/tmp/baroloop/programmer-rust/ cargo build --release --bin serve }
do_install() { # this isn_t reached anyway # ... }
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
-- Mit freundlichen Grüßen neuroloop GmbH i.A. Felix Knorr Senior Software Developer -------------------------------------- neuroloop GmbH Engesserstr. 4, 79108 Freiburg, Germany
Amtsgericht Freiburg HRB 713935
Geschäftsführer: Dr. Michael Lauk, Dr. Dennis Plachta
The information contained in this communication is confidential, may be attorney-client privileged, may constitute inside information, and is intended only for the use of the addressee. It is the property of the company of the sender of this e-mail. Unauthorized use, disclosure, or copying of this communication or any part thereof is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us immediately by return e-mail and destroy this communication and all copies thereof, including all attachments.
|
|
Hey,
thanks for the great explanation!
|
|