trustification / trustify

Apache License 2.0
10 stars 19 forks source link

Cross compilation issue with openssl-sys when vendoring #540

Closed ctron closed 4 months ago

ctron commented 4 months ago

We focus on openssl. For some targets that requires us to vendor openssl, since it is not available through other channels.

This is specifically true for -musl targets.

Currently, the build breaks because of openssl failing to compile, despite the fact that vendoring is turned on for openssl. However, openssl is in the build twice. One time as a proper dependency, and second as a build dependency for downloading postgres:

Expand ``` ➜ trustify git:(main) cargo tree --target aarch64-unknown-linux-musl --workspace --no-default-features --features pm,vendored -i openssl-sys ``` ``` openssl-sys v0.9.102 ├── native-tls v0.2.12 │ ├── hyper-tls v0.6.0 │ │ └── reqwest v0.12.5 │ │ ├── postgresql_archive v0.14.1 │ │ │ [build-dependencies] │ │ │ └── postgresql_embedded v0.14.1 │ │ │ ├── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) │ │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) │ │ │ │ │ ├── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) │ │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) │ │ │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) │ │ │ │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) │ │ │ │ │ │ │ │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) │ │ │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) │ │ │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ │ │ │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) │ │ │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ │ │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── trustify-entity v0.1.0-alpha.11 (/home/jreimann/git/trustify/entity) │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ │ └── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ │ └── trustify-test-context v0.1.0-alpha.11 (/home/jreimann/git/trustify/test-context) │ │ │ │ │ [dev-dependencies] │ │ │ │ │ ├── trustify-migration v0.1.0-alpha.11 (/home/jreimann/git/trustify/migration) │ │ │ │ │ │ ├── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) (*) │ │ │ │ │ │ └── trustify-test-context v0.1.0-alpha.11 (/home/jreimann/git/trustify/test-context) (*) │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ │ ├── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ ├── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ │ ├── trustify-module-storage v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/storage) │ │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ │ ├── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ │ └── trustify-test-context v0.1.0-alpha.11 (/home/jreimann/git/trustify/test-context) (*) │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── trustify-test-context v0.1.0-alpha.11 (/home/jreimann/git/trustify/test-context) (*) │ │ │ │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) │ │ │ │ [dev-dependencies] │ │ │ │ └── trustify-migration v0.1.0-alpha.11 (/home/jreimann/git/trustify/migration) (*) │ │ │ ├── trustify-test-context v0.1.0-alpha.11 (/home/jreimann/git/trustify/test-context) (*) │ │ │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) │ │ ├── reqwest-middleware v0.3.2 │ │ │ ├── postgresql_archive v0.14.1 (*) │ │ │ ├── reqwest-retry v0.6.0 │ │ │ │ └── postgresql_archive v0.14.1 (*) │ │ │ └── reqwest-tracing v0.5.1 │ │ │ └── postgresql_archive v0.14.1 (*) │ │ ├── reqwest-retry v0.6.0 (*) │ │ └── reqwest-tracing v0.5.1 (*) │ ├── reqwest v0.12.5 (*) │ ├── sqlx-core v0.7.4 │ │ ├── sqlx-macros v0.7.4 (proc-macro) │ │ │ └── sqlx v0.7.4 │ │ │ ├── postgresql_embedded v0.14.1 (*) │ │ │ ├── sea-orm v0.12.15 │ │ │ │ ├── sea-orm-migration v0.12.15 │ │ │ │ │ └── trustify-migration v0.1.0-alpha.11 (/home/jreimann/git/trustify/migration) (*) │ │ │ │ ├── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) (*) │ │ │ │ ├── trustify-entity v0.1.0-alpha.11 (/home/jreimann/git/trustify/entity) (*) │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ └── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ ├── sea-query-binder v0.5.0 │ │ │ │ └── sea-orm v0.12.15 (*) │ │ │ └── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) (*) │ │ ├── sqlx-macros-core v0.7.4 │ │ │ └── sqlx-macros v0.7.4 (proc-macro) (*) │ │ └── sqlx-postgres v0.7.4 │ │ └── sqlx-macros-core v0.7.4 (*) │ └── tokio-native-tls v0.3.1 │ ├── hyper-tls v0.6.0 (*) │ └── reqwest v0.12.5 (*) └── openssl v0.10.64 └── native-tls v0.2.12 (*) openssl-sys v0.9.102 ├── git2 v0.19.0 │ └── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) ├── libgit2-sys v0.17.0+1.8.1 │ └── git2 v0.19.0 (*) ├── libssh2-sys v0.3.0 │ └── libgit2-sys v0.17.0+1.8.1 (*) ├── native-tls v0.2.12 │ ├── hyper-tls v0.6.0 │ │ └── reqwest v0.12.5 │ │ ├── csaf-walker v0.8.6 │ │ │ └── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ ├── oauth2 v5.0.0-alpha.4 │ │ │ ├── garage-door v0.1.0 │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ └── openidconnect v4.0.0-alpha.2 │ │ │ └── garage-door v0.1.0 (*) │ │ ├── openid v0.14.0 │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ └── walker-common v0.8.6 │ │ │ ├── csaf-walker v0.8.6 (*) │ │ │ ├── sbom-walker v0.8.6 │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ └── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ └── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ ├── postgresql_archive v0.14.1 │ │ │ └── postgresql_embedded v0.14.1 (*) │ │ ├── reqwest-middleware v0.3.2 │ │ │ ├── postgresql_archive v0.14.1 (*) │ │ │ ├── reqwest-retry v0.6.0 │ │ │ │ └── postgresql_archive v0.14.1 (*) │ │ │ └── reqwest-tracing v0.5.1 │ │ │ └── postgresql_archive v0.14.1 (*) │ │ ├── reqwest-retry v0.6.0 (*) │ │ ├── reqwest-tracing v0.5.1 (*) │ │ ├── sbom-walker v0.8.6 (*) │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ ├── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) (*) │ │ ├── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ └── walker-common v0.8.6 (*) │ ├── reqwest v0.12.5 (*) │ ├── sqlx-core v0.7.4 │ │ ├── sqlx v0.7.4 (*) │ │ └── sqlx-postgres v0.7.4 │ │ └── sqlx v0.7.4 (*) │ ├── tokio-native-tls v0.3.1 │ │ ├── hyper-tls v0.6.0 (*) │ │ └── reqwest v0.12.5 (*) │ └── trustify-common v0.1.0-alpha.11 (/home/jreimann/git/trustify/common) (*) ├── openssl v0.10.64 │ ├── actix-tls v3.4.0 │ │ ├── actix-http v3.8.0 │ │ │ ├── actix-web v4.8.0 │ │ │ │ ├── actix-cors v0.7.0 │ │ │ │ │ ├── garage-door v0.1.0 (*) │ │ │ │ │ ├── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── actix-web-actors v4.3.0 │ │ │ │ │ └── async-graphql-actix-web v7.0.6 │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── actix-web-extras v0.1.0 │ │ │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ │ │ └── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ ├── actix-web-httpauth v0.8.2 │ │ │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ │ │ └── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ ├── actix-web-opentelemetry v0.17.0 │ │ │ │ │ └── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ ├── actix-web-prom v0.8.0 │ │ │ │ │ └── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ ├── actix-web-static-files v4.0.1 │ │ │ │ │ └── trustify-module-ui v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ui) │ │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ ├── async-graphql-actix-web v7.0.6 (*) │ │ │ │ ├── garage-door v0.1.0 (*) │ │ │ │ ├── oxide-auth-actix v0.3.0 │ │ │ │ │ └── garage-door v0.1.0 (*) │ │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ │ ├── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ │ │ │ ├── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ │ ├── trustify-module-graphql v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/graphql) (*) │ │ │ │ ├── trustify-module-importer v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/importer) (*) │ │ │ │ ├── trustify-module-ingestor v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ingestor) (*) │ │ │ │ ├── trustify-module-storage v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/storage) (*) │ │ │ │ ├── trustify-module-ui v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/ui) (*) │ │ │ │ ├── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ │ └── utoipa-swagger-ui v7.1.0 │ │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ │ └── trustify-server v0.1.0-alpha.11 (/home/jreimann/git/trustify/server) (*) │ │ │ ├── actix-web-actors v4.3.0 (*) │ │ │ ├── actix-web-opentelemetry v0.17.0 (*) │ │ │ ├── async-graphql-actix-web v7.0.6 (*) │ │ │ ├── trustify-auth v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/auth) (*) │ │ │ └── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ │ [dev-dependencies] │ │ │ └── trustify-module-fundamental v0.1.0-alpha.11 (/home/jreimann/git/trustify/modules/fundamental) (*) │ │ ├── actix-web v4.8.0 (*) │ │ └── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ ├── native-tls v0.2.12 (*) │ ├── sequoia-openpgp v1.21.1 │ │ ├── csaf-walker v0.8.6 (*) │ │ ├── sbom-walker v0.8.6 (*) │ │ └── walker-common v0.8.6 (*) │ ├── tokio-openssl v0.6.4 │ │ └── actix-tls v3.4.0 (*) │ ├── trustify-infrastructure v0.1.0-alpha.11 (/home/jreimann/git/trustify/common/infrastructure) (*) │ └── trustify-trustd v0.1.0-alpha.11 (/home/jreimann/git/trustify/trustd) ├── sequoia-openpgp v1.21.1 (*) └── tokio-openssl v0.6.4 (*) ```
ctron commented 4 months ago

Closed by #541