diff options
Diffstat (limited to 'net-im/conduit/conduit-0.5.0.ebuild')
-rw-r--r-- | net-im/conduit/conduit-0.5.0.ebuild | 183 |
1 files changed, 135 insertions, 48 deletions
diff --git a/net-im/conduit/conduit-0.5.0.ebuild b/net-im/conduit/conduit-0.5.0.ebuild index e4285e5..d33bcac 100644 --- a/net-im/conduit/conduit-0.5.0.ebuild +++ b/net-im/conduit/conduit-0.5.0.ebuild @@ -528,7 +528,6 @@ CRATES=" winreg-0.7.0 xshell-0.1.17 xshell-macros-0.1.17 - xtask-0.1.0 yansi-0.5.1 yap-0.8.1 zeroize-1.5.7 @@ -567,66 +566,154 @@ DEPEND="${RDEPEND}" src_unpack() { cargo_src_unpack - # Prepare Ruma Crate + # Conduit uses custom forks/commits for Heed, Reqwest and Ruma + # The Heed and Ruma crates can't be used by portage as-is, + # so they need to be unpacked and corrected manually + + # Prepare Ruma Crates + cd "${WORKDIR}/cargo_home/gentoo/ruma-${RUMACOMMIT}/crates" || die + + # Remove references to workspaces since we are moving them out of the ruma workspace + sed -i -e '/workspace/d' "ruma/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-appservice-api/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-client-api/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-client/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-common/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-federation-api/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-identifiers-validation/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-identity-service-api/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-macros/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-push-gateway-api/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-server-util/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-signatures/Cargo.toml" || die + sed -i -e '/workspace/d' "ruma-state-res/Cargo.toml" || die + + # Because we undid the workspaces, some of the packages unpacked from + # the ruma crate are missing dependencies, so we add them back here + + RUMADEPS="\[dependencies\]" + RUMADEPS+="\nassign = \"1.1.1\"" + RUMADEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + sed -i -e "s/^\[dependencies\]$/${RUMADEPS}/" "ruma/Cargo.toml" || die + + RUMEAPPSERVICEDEPS="\[dependencies\]" + RUMEAPPSERVICEDEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + RUMEAPPSERVICEDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMEAPPSERVICEDEPS+="\nserde_json = { version = \"1.0.87\", features = \[\"raw_value\"\] }" + sed -i -e "s/^\[dependencies\]$/${RUMEAPPSERVICEDEPS}/" "ruma-appservice-api/Cargo.toml" || die + + RUMACLIENTDEPS="\[dependencies\]" + RUMACLIENTDEPS+="\nassign = \"1.1.1\"" + RUMACLIENTDEPS+="\nhttp = \"0.2.8\"" + RUMACLIENTDEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + RUMACLIENTDEPS+="\nmaplit = \"1.0.2\"" + RUMACLIENTDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMACLIENTDEPS+="\nserde_json = \"1.0.87\"" + sed -i -e "s/^\[dependencies\]$/${RUMACLIENTDEPS}/" "ruma-client-api/Cargo.toml" || die + + RUMACOMMONDEPS="\[dependencies\]" + RUMACOMMONDEPS+="\nbase64 = \"0.20.0\"" + RUMACOMMONDEPS+="\nhttp = { version = \"0.2.8\", optional = true }" + RUMACOMMONDEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + RUMACOMMONDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMACOMMONDEPS+="\nserde_json = { version = \"1.0.87\", features = \[\"raw_value\"\] }" + RUMACOMMONDEPS+="\nthiserror = \"1.0.37\"" + RUMACOMMONDEPS+="\ntracing = { version = \"0.1.37\", features = \[\"attributes\"\] }" + sed -i -e "s/^\[dependencies\]$/${RUMACOMMONDEPS}/" "ruma-common/Cargo.toml" || die + + RUMAIDENTIFIERSDEPS="\[dependencies\]" + RUMAIDENTIFIERSDEPS+="\njs_int = \"0.2.2\"" + RUMAIDENTIFIERSDEPS+="\nthiserror = \"1.0.37\"" + sed -i -e "s/^\[dependencies\]$/${RUMAIDENTIFIERSDEPS}/" "ruma-identifiers-validation/Cargo.toml" || die + + RUMAFEDERATIONDEPS="\[dependencies\]" + RUMAFEDERATIONDEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + RUMAFEDERATIONDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMAFEDERATIONDEPS+="\nserde_json = \"1.0.87\"" + sed -i -e "s/^\[dependencies\]$/${RUMAFEDERATIONDEPS}/" "ruma-federation-api/Cargo.toml" || die + + RUMAMACROSDEPS="\[dependencies\]" + RUMAMACROSDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + sed -i -e "s/^\[dependencies\]$/${RUMAMACROSDEPS}/" "ruma-macros/Cargo.toml" || die + + RUMAPUSHDEPS="\[dependencies\]" + RUMAPUSHDEPS+="\njs_int = { version = \"0.2.2\", features = \[\"serde\"\] }" + RUMAPUSHDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMAPUSHDEPS+="\nserde_json = \"1.0.87\"" + sed -i -e "s/^\[dependencies\]$/${RUMAPUSHDEPS}/" "ruma-push-gateway-api/Cargo.toml" || die + + RUMASIGNDEPS="\[dependencies\]" + RUMASIGNDEPS+="\nbase64 = \"0.20.0\"" + RUMASIGNDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMASIGNDEPS+="\nserde_json = { version = \"1.0.87\", features = \[\"raw_value\"\] }" + RUMASIGNDEPS+="\nthiserror = \"1.0.37\"" + sed -i -e "s/^\[dependencies\]$/${RUMASIGNDEPS}/" "ruma-signatures/Cargo.toml" || die + + RUMASTATEDEPS="\[dependencies\]" + RUMASTATEDEPS+="\njs_int = \"0.2.2\"" + RUMASTATEDEPS+="\nserde = { version = \"1.0.147\", features = \[\"derive\"\] }" + RUMASTATEDEPS+="\nserde_json = \"1.0.87\"" + RUMASTATEDEPS+="\nthiserror = \"1.0.37\"" + RUMASTATEDEPS+="\ntracing = { version = \"0.1.37\", features = \[\"std\"\] }" + sed -i -e "s/^\[dependencies\]$/${RUMASTATEDEPS}/" "ruma-state-res/Cargo.toml" || die + + # Copy the checksum so Cargo is happy + cp "../.cargo-checksum.json" "ruma" || die + cp "../.cargo-checksum.json" "ruma-appservice-api" || die + cp "../.cargo-checksum.json" "ruma-client" || die + cp "../.cargo-checksum.json" "ruma-client-api" || die + cp "../.cargo-checksum.json" "ruma-common" || die + cp "../.cargo-checksum.json" "ruma-federation-api" || die + cp "../.cargo-checksum.json" "ruma-identifiers-validation" || die + cp "../.cargo-checksum.json" "ruma-identity-service-api" || die + cp "../.cargo-checksum.json" "ruma-macros" || die + cp "../.cargo-checksum.json" "ruma-push-gateway-api" || die + cp "../.cargo-checksum.json" "ruma-server-util" || die + cp "../.cargo-checksum.json" "ruma-signatures" || die + cp "../.cargo-checksum.json" "ruma-state-res" || die + + # Move them in cargo home + mv "ruma" "../../ruma-0.7.4" || die + mv "ruma-appservice-api" "../../ruma-appservice-api-0.7.0" || die + mv "ruma-client" "../../ruma-client-0.10.0" || die + mv "ruma-client-api" "../../ruma-client-api-0.15.3" || die + mv "ruma-common" "../../ruma-common-0.10.5" || die + mv "ruma-federation-api" "../../ruma-federation-api-0.6.0" || die + mv "ruma-identifiers-validation" "../../ruma-identifiers-validation-0.9.0" || die + mv "ruma-identity-service-api" "../../ruma-identity-service-api-0.6.0" || die + mv "ruma-macros" "../../ruma-macros-0.10.5" || die + mv "ruma-push-gateway-api" "../../ruma-push-gateway-api-0.6.0" || die + mv "ruma-server-util" "../../ruma-server-util-0.1.0" || die + mv "ruma-signatures" "../../ruma-signatures-0.12.0" || die + mv "ruma-state-res" "../../ruma-state-res-0.8.0" || die + + # Repeat all of the above for xtask cd "${WORKDIR}/cargo_home/gentoo/ruma-${RUMACOMMIT}" || die + sed -i -e '/workspace/d' "xtask/Cargo.toml" || die + cp ".cargo-checksum.json" "xtask" || die mv "xtask" "../xtask-0.1.0" || die - cp ".cargo-checksum.json" "../xtask-0.1.0" || die - cd "crates" || die - mv "ruma" "../ruma-0.7.4" || die - cp ".cargo-checksum.json" "../ruma-0.7.4" || die - mv "ruma-appservice-api" "../ruma-appservice-api-0.7.0" || die - cp ".cargo-checksum.json" "../ruma-appservice-api-0.7.0" || die - mv "ruma-client" "../ruma-client-0.10.0" || die - cp ".cargo-checksum.json" "../ruma-client-0.10.0" || die - mv "ruma-client-api" "../ruma-client-api-0.15.3" || die - cp ".cargo-checksum.json" "../ruma-client-api-0.15.3" || die - mv "ruma-common" "../ruma-common-0.10.5" || die - cp ".cargo-checksum.json" "../ruma-common-0.10.5" || die - mv "ruma-federation-api" "../ruma-federation-api-0.6.0" || die - cp ".cargo-checksum.json" "../ruma-federation-api-0.6.0" || die - mv "ruma-identifiers-validation" "../ruma-identifiers-validation-0.9.0" || die - cp ".cargo-checksum.json" "../ruma-identifiers-validation-0.9.0" || die - mv "ruma-identify-service-api" "../ruma-identity-service-api-0.6.0" || die - cp ".cargo-checksum.json" "../ruma-identity-service-api-0.6.0" || die - mv "ruma-macros" "../ruma-macros-0.10.5" || die - cp ".cargo-checksum.json" "../ruma-macros-0.10.5" || die - mv "ruma-push-gateway-api" "../ruma-push-gateway-api-0.6.0" || die - cp ".cargo-checksum.json" "../ruma-push-gateway-api-0.6.0" || die - mv "ruma-server-util" "../ruma-server-util-0.1.0" || die - cp ".cargo-checksum.json" "../ruma-server-util-0.1.0" || die - mv "ruma-signatures" "../ruma-signatures-0.12.0" || die - cp ".cargo-checksum.json" "../ruma-0.12.0" || die - mv "ruma-state-res" "../ruma-state-res-0.8.0" || die - cp ".cargo-checksum.json" "../ruma-state-res-0.8.0" || die + # Remove the now useless Cargo.toml + rm "Cargo.toml" || die - # Prepare Heed Crate + # Repeat all of the above for heed cd "${WORKDIR}/cargo_home/gentoo/heed-${HEEDCOMMIT}" || die + cp ".cargo-checksum.json" "heed" || die + cp ".cargo-checksum.json" "heed-traits" || die + cp ".cargo-checksum.json" "heed-types" || die mv "heed" "../heed-0.10.6" || die - cp ".cargo-checksum.json" "../heed-0.10.6" || die mv "heed-traits" "../heed-traits-0.7.0" || die - cp ".cargo-checksum.json" "../heed-traits-0.7.0" || die mv "heed-types" "../heed-types-0.7.2" || die - cp ".cargo-checksum.json" "../heed-types-0.7.2" || die rm "Cargo.toml" || die } src_prepare() { # Conduit uses custom forks or specific commits of Ruma, Reqwest and Heed - # Because of this, Cargo will complain that they are missing, so we remove them. - sed -i -e '/^ruma.*$/d' Cargo.toml || die - sed -i -e '/^reqwest.*$/d' Cargo.toml || die - sed -i -e '/^heed.*$/d' Cargo.toml || die - sed -i -e '/^backend_heed.*$/d' Cargo.toml || die + # Because of this, Cargo will try to fetch from online. Since we + # unpacked them in src_unpack, we update Cargo.toml to use those instead + sed -i -e 's/^heed.*/heed = \{ version = "0.10.6", optional = true \}/' Cargo.toml || die + sed -i -e 's/^reqwest.*/reqwest = { version = "0.11.9", features = \["rustls-tls-native-roots", "socks"\] }/' Cargo.toml || die + sed -i -e 's/^ruma.*/ruma ={ version = "0.7.4", features = \["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" \] }/' Cargo.toml || die default } - -src_compile() { - # cd "${WORKDIR}/reqwest-${REQCOMMIT}" || die - # cargo_src_compile --package reqwest - # cd "${WORKDIR}/ruma-${RUMACOMMIT}" || die - # cargo_src_compile --package ruma - # cd "${S}" || die - cargo_src_compile --package conduit -} |