From 86b918d95c13d00a283cbe508e64a33a84f00c34 Mon Sep 17 00:00:00 2001 From: AP Ljungquist Date: Thu, 9 May 2024 08:32:56 +0200 Subject: [PATCH 1/4] Add related projects section to readme The intended benefits of this section include * help potential users discover other tools and make an informed decision. * provide context for the current project to communicate what we want to achieve. --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/README.md b/README.md index b8e4827..0bc434f 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,44 @@ Below is the list of examples available in the repository. * [`licensekey_handler`](apps/licensekey_handler/src/main.rs) : An example that illustrates how to check the licensekey status. +## Related projects + +This is not the only initiative to facilitate building Rust applications for Axis devices. +Below is a survey of other projects known to the author. + +### [cargo-acap](https://github.com/trunnion/cargo-acap) + +A Rust binary crate that facilitates cross-compiling and bundling Rust programs for Axis devices. +Installing it and building eap files for virtually every architecture can be done like +```sh +cargo install cargo-acap +cargo acap build +``` + +Praises +* Depends only on Cargo et al and Docker. +* Requires no ACAP specific boilerplate. +* Supports old products, including ARTPEC-4 and ARTPEC-5. + +Reasonable complaints +* Unaware of the ACAP manifest. + * Does not validate the ACAP manifest. + * Requires information to be duplicated in `Cargo.toml` if the ACAP manifest is to be used. +* Requires Docker + * Cannot easily be used from within a Docker container. +* The default docker image cannot be used to link the ACAP SDK APIs. +* Assumes custom target triples with the vendor set to `axis`. + * Restricts how docker images can be built. + * May cause bugs in crates that use conditional compilation[^1]. +* Does not support workspace projects + +Unreasonable complaints +* Does not facilitate any interaction with the device including + * compiling and running tests + * installing the built `.eap` file + +[^1]: https://github.com/trunnion/cargo-acap/commit/6748c52ef1c13a6a12cc327a65a333c012c5725b + ## License [MIT](LICENSE) From 0eba30dd00796bea1dad8b30a2892d9f066c989a Mon Sep 17 00:00:00 2001 From: AP Ljungquist Date: Thu, 9 May 2024 08:39:00 +0200 Subject: [PATCH 2/4] Remove link in header Because when I saw it rendered on github I thought it was hard to tell what lines are headers and what level header they are. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0bc434f..092d835 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@ Below is the list of examples available in the repository. This is not the only initiative to facilitate building Rust applications for Axis devices. Below is a survey of other projects known to the author. -### [cargo-acap](https://github.com/trunnion/cargo-acap) +### cargo-acap -A Rust binary crate that facilitates cross-compiling and bundling Rust programs for Axis devices. +[cargo-acap] is a Rust binary crate that cross-compiles and packages Rust programs for Axis devices. Installing it and building eap files for virtually every architecture can be done like ```sh cargo install cargo-acap @@ -77,6 +77,7 @@ Unreasonable complaints * compiling and running tests * installing the built `.eap` file +[cargo-acap]: https://github.com/trunnion/cargo-acap [^1]: https://github.com/trunnion/cargo-acap/commit/6748c52ef1c13a6a12cc327a65a333c012c5725b ## License From 9efa43670ab696bc7cb603879314c7e8a6d06dac Mon Sep 17 00:00:00 2001 From: AP Ljungquist Date: Thu, 9 May 2024 09:47:09 +0200 Subject: [PATCH 3/4] Add lack of support for bundling target specific files --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 092d835..23d6e08 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ Reasonable complaints * Restricts how docker images can be built. * May cause bugs in crates that use conditional compilation[^1]. * Does not support workspace projects +* Does not support bundling target-specific files[^2]. Unreasonable complaints * Does not facilitate any interaction with the device including @@ -79,6 +80,7 @@ Unreasonable complaints [cargo-acap]: https://github.com/trunnion/cargo-acap [^1]: https://github.com/trunnion/cargo-acap/commit/6748c52ef1c13a6a12cc327a65a333c012c5725b +[^2]: This has been discussed but not implemented https://github.com/trunnion/cargo-acap/pull/5 ## License From 8e875b5c05f51ab3f957221cc399e641b6109043 Mon Sep 17 00:00:00 2001 From: AP Ljungquist Date: Thu, 6 Jun 2024 19:20:52 +0200 Subject: [PATCH 4/4] Add lack of dynamic users Another consequence of not having a mechanism to propagate settings automatically, and not having the project staffed to be actively maintained is that new features such as this are unsupported for now. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23d6e08..b501e81 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Reasonable complaints * Unaware of the ACAP manifest. * Does not validate the ACAP manifest. * Requires information to be duplicated in `Cargo.toml` if the ACAP manifest is to be used. + * Does not use dynamic user. * Requires Docker * Cannot easily be used from within a Docker container. * The default docker image cannot be used to link the ACAP SDK APIs.