Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Dunfell branch to IoT Edge version 1.2.6. #76

Closed
wants to merge 1 commit into from

Conversation

pierrickcurt
Copy link

@pierrickcurt pierrickcurt commented Jan 5, 2022

Create all the recipes needed to integrate the iotedge runtime
version 1.2.6. It includes the recipes for the daemon and the
identity-service.
This version has been tested with the following DPS methods:

  • Symmectric key
  • TPM

It builds the last official release :
'https://github.com/Azure/iotedge/releases/tag/1.2.6'

Ref: #63

@ghost
Copy link

ghost commented Jan 5, 2022

CLA assistant check
All CLA requirements met.

@ruben-sch
Copy link

Great work, will test it asap!
would be great if this is followed up, will close #63

@ruben-sch
Copy link

ruben-sch commented Jan 18, 2022

Hi,

I tried to build but run into following error:

error: failed to select a version for the requirement `nix = "^0.23"`
candidate versions found which didn't match: 0.18.0, 0.14.1

Any idea whats going wrong here?

Full log: ``` DEBUG: Executing shell function do_compile NOTE: cargo = /home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/recipe-sysroot-native/usr/bin/cargo NOTE: rustc = NOTE: cargo build -v --target arm-poky-linux-gnueabi --release --manifest-path=/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/git/edgelet/iotedge/Cargo.toml Updating git repository `https://github.com/Azure/iot-identity-service` Fetch [ ] 0.00% Fetch [===============> ] 67.00% Updating git submodule `https://github.com/Azure/azure-c-shared-utility.git` Fetch [ ] 0.00% Fetch [==> ] 15.21% Fetch [=====> ] 26.45% Fetch [=======> ] 35.50% Fetch [=========> ] 41.23% Fetch [==========> ] 46.98% Fetch [=============> ] 57.05% Fetch [=================> ] 72.18% Fetch [=====================> ] 90.38% Fetch [=======================> ] 97.93% Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/umock-c.git` Fetch [ ] 0.00% Fetch [==================> ] 76.67% Updating git submodule `https://github.com/Azure/azure-ctest.git` Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Fetch [=================> ] 72.54% Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Fetch [===================> ] 82.80% Updating git submodule `https://github.com/Azure/azure-ctest.git` Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-utpm-c.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Updating git submodule `https://github.com/Azure/azure-ctest.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Updating git submodule `https://github.com/Azure/azure-c-shared-utility.git` Fetch [ ] 0.00% Fetch [==> ] 14.57% Fetch [=====> ] 26.15% Fetch [=======> ] 35.79% Fetch [=========> ] 42.16% Fetch [===========> ] 48.23% Fetch [==============> ] 62.87% Fetch [==================> ] 78.73% Fetch [======================> ] 95.24% Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/umock-c.git` Fetch [ ] 0.00% Fetch [==================> ] 78.93% Updating git submodule `https://github.com/Azure/azure-ctest.git` Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Fetch [=================> ] 72.40% Updating git submodule `https://github.com/Azure/azure-ctest.git` Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Fetch [===============> ] 64.53% Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Fetch [==========> ] 44.94% Updating git submodule `https://github.com/Azure/umock-c.git` Fetch [ ] 0.00% Fetch [==================> ] 76.46% Updating git submodule `https://github.com/Azure/azure-ctest.git` Updating git submodule `https://github.com/Azure/azure-macro-utils-c.git` Fetch [==================> ] 79.75% Updating git submodule `https://github.com/Azure/azure-c-testrunnerswitcher.git` Fetch [ ] 0.00% Updating git submodule `https://github.com/Azure/azure-macro-utils-c` Fetch [===================> ] 82.25% warning: path override for crate `aziot-certd-config` has altered the original list of dependencies; the dependency on `http-common` was either added or modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identity-common has altered the original list of
dependencies; the dependency on aziot-key-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identity-common-http has altered the original list of
dependencies; the dependency on aziot-cert-common-http was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identityd-config has altered the original list of
dependencies; the dependency on aziot-identity-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-keyd-config has altered the original list of
dependencies; the dependency on http-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-keys-common has altered the original list of
dependencies; the dependency on pkcs11 was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-tpmd-config has altered the original list of
dependencies; the dependency on http-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziotctl-common has altered the original list of
dependencies; the dependency on aziot-certd-config was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

error: failed to select a version for the requirement nix = "^0.23"
candidate versions found which didn't match: 0.18.0, 0.14.1
location searched: directory source /home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/cargo_home/bitbake (which is replacing registry https://github.com/rust-lang/crates.io-index)
required by package aziotctl-common v0.1.0 (/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/aziot-cert-common-http)
... which is depended on by iotedge v0.1.0 (/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/git/edgelet/iotedge)
perhaps a crate was updated and forgotten to be re-vendored?
WARNING: exit code 101 from a shell command.
ERROR: Execution of '/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/temp/run.do_compile.1943' failed with exit code 101:
Updating git repository https://github.com/Azure/iot-identity-service
Fetch [ ] 0.00%
Fetch [===============> ] 67.00%
Updating git submodule https://github.com/Azure/azure-c-shared-utility.git
Fetch [ ] 0.00%
Fetch [==> ] 15.21%
Fetch [=====> ] 26.45%
Fetch [=======> ] 35.50%
Fetch [=========> ] 41.23%
Fetch [==========> ] 46.98%
Fetch [=============> ] 57.05%
Fetch [=================> ] 72.18%
Fetch [=====================> ] 90.38%
Fetch [=======================> ] 97.93%
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/umock-c.git
Fetch [ ] 0.00%
Fetch [==================> ] 76.67%
Updating git submodule https://github.com/Azure/azure-ctest.git
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Fetch [=================> ] 72.54%
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Fetch [===================> ] 82.80%
Updating git submodule https://github.com/Azure/azure-ctest.git
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-utpm-c.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Updating git submodule https://github.com/Azure/azure-ctest.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Updating git submodule https://github.com/Azure/azure-c-shared-utility.git
Fetch [ ] 0.00%
Fetch [==> ] 14.57%
Fetch [=====> ] 26.15%
Fetch [=======> ] 35.79%
Fetch [=========> ] 42.16%
Fetch [===========> ] 48.23%
Fetch [==============> ] 62.87%
Fetch [==================> ] 78.73%
Fetch [======================> ] 95.24%
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/umock-c.git
Fetch [ ] 0.00%
Fetch [==================> ] 78.93%
Updating git submodule https://github.com/Azure/azure-ctest.git
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Fetch [=================> ] 72.40%
Updating git submodule https://github.com/Azure/azure-ctest.git
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Fetch [===============> ] 64.53%
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Fetch [==========> ] 44.94%
Updating git submodule https://github.com/Azure/umock-c.git
Fetch [ ] 0.00%
Fetch [==================> ] 76.46%
Updating git submodule https://github.com/Azure/azure-ctest.git
Updating git submodule https://github.com/Azure/azure-macro-utils-c.git
Fetch [==================> ] 79.75%
Updating git submodule https://github.com/Azure/azure-c-testrunnerswitcher.git
Fetch [ ] 0.00%
Updating git submodule https://github.com/Azure/azure-macro-utils-c
Fetch [===================> ] 82.25%
warning: path override for crate aziot-certd-config has altered the original list of
dependencies; the dependency on http-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identity-common has altered the original list of
dependencies; the dependency on aziot-key-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identity-common-http has altered the original list of
dependencies; the dependency on aziot-cert-common-http was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-identityd-config has altered the original list of
dependencies; the dependency on aziot-identity-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-keyd-config has altered the original list of
dependencies; the dependency on http-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-keys-common has altered the original list of
dependencies; the dependency on pkcs11 was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziot-tpmd-config has altered the original list of
dependencies; the dependency on http-common was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

warning: path override for crate aziotctl-common has altered the original list of
dependencies; the dependency on aziot-certd-config was either added or
modified to not match the previously resolved version

This is currently allowed but is known to produce buggy behavior with spurious
recompiles and changes to the crate graph. Path overrides unfortunately were
never intended to support this feature, so for now this message is just a
warning. In the future, however, this message will become a hard error.

To change the dependency graph via an override it's recommended to use the
[replace] feature of Cargo instead of the path override feature. This is
documented online at the url below for more information.

https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html

error: failed to select a version for the requirement nix = "^0.23"
candidate versions found which didn't match: 0.18.0, 0.14.1
location searched: directory source /home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/cargo_home/bitbake (which is replacing registry https://github.com/rust-lang/crates.io-index)
required by package aziotctl-common v0.1.0 (/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/aziot-cert-common-http)
... which is depended on by iotedge v0.1.0 (/home/yocto/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/aziot-cli/1.2.6-r0/git/edgelet/iotedge)
perhaps a crate was updated and forgotten to be re-vendored?
WARNING: exit code 101 from a shell command.

</details>

Create all the recipes needed to integrate the iotedge runtime
version 1.2.6. It includes the recipes for the daemon and the
identity-service.
This version has been tested with the following DPS methods:
- Symmectric key
- TPM

It builds the last official release :
'https://github.com/Azure/iotedge/releases/tag/1.2.6'

Ref: Azure#63
@pierrickcurt
Copy link
Author

pierrickcurt commented Jan 18, 2022

Hi,
It was a breaking change on submodules from Azure IoT Identity Service.
I have pushed the fix.

@ruben-sch
Copy link

Hi @pierrickcurt
thanks a lot! Build now succeded and we will test and validate if everything is working as expected.

@SebsSa
Copy link

SebsSa commented Jan 20, 2022

Hey @pierrickcurt
thanks ! the build succeeded and I can confirm that all functions of iotedge work.

@micahl
Copy link
Contributor

micahl commented Feb 2, 2022

@pierrickcurt thank you for making this available for everyone! Since the v1.1.x release is our LTS version which is supported through the end of this year, we're not ready to drop the existing 1.1.x recipes.

@pierrickcurt
Copy link
Author

@pierrickcurt thank you for making this available for everyone! Since the v1.1.x release is our LTS version which is supported through the end of this year, we're not ready to drop the existing 1.1.x recipes.

I think you can keep both recipes for versions 1.1.x and 1.2.x. Maybe create a branch dunfell-1.2 ?

@micahl
Copy link
Contributor

micahl commented Feb 3, 2022

I think you can keep both recipes for versions 1.1.x and 1.2.x. Maybe create a branch dunfell-1.2 ?

Yes, we're discussing alternative branching strategies from what we currently do. We'll post a proposal and would appreciate hearing everyone's feedback.

@amh63
Copy link

amh63 commented Feb 3, 2022

@pierrickcurt thanks for doing this. I have one comment on building for aarch64: I found that I had to use a slightly newer revision of meta-rust than stated in the patch. I used revision 09605d2ea5cb9ea68be5f94235699cc8ba3367fc and this built OK for aarch64.

@micahl
Copy link
Contributor

micahl commented Feb 4, 2022

Re: the proposal on branching I mentioned earlier. Please provide any feedback on #77

@Vishwasrao1
Copy link

@pierrickcurt @SebsSa, were you able to do provisioning using X509 certificates successfully?

@micahl
Copy link
Contributor

micahl commented Sep 19, 2022

jfyi for anyone coming here, please also take a look at the current (draft) PR for 1.4 #90. And a hat tip to @pierrickcurt and team on sharing the work they did for 1.2.x.

@micahl
Copy link
Contributor

micahl commented Dec 3, 2022

Closing this PR now that the Dunfell branch has been updated with recipes for 1.4. Big thanks again to @pierrickcurt and team.

@micahl micahl closed this Dec 3, 2022
@pierrickcurt
Copy link
Author

Happy to have helped you. Well done for the work

@sbourdelin
Copy link

Hi Guys, nice work there, however did you try to kept @pierrickcurt involve in your 1.4 patches?

I can see that you were having issue with the panic strategy within Rust and have find inspiration in the https://github.com/lkaino/meta-iotedge/tree/dunfell repo, which is a fork of https://github.com/Rtone/meta-iotedge/commits/dunfell which is actually this PR done by @pierrickcurt 😬

It would have been great for us to say involved and see our company name as commiter in your repository at some point 😢

@ggjjj
Copy link
Contributor

ggjjj commented Dec 8, 2022

@sbourdelin Thanks for mentioning here.! 1.2 PR from @pierrickcurt was a great inspiration to start the 1.4. Thanks @pierrickcurt and for course the panic stratedgy from Ikaino as well. Thanks for all the work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants