Fix crash when local package is missing and make OpenSSL optional in typst-kit (#4720)

This commit is contained in:
Florent Michel 2024-08-11 21:16:40 +01:00 committed by GitHub
parent d06f3f180c
commit 70931ac1f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 5 deletions

View File

@ -28,7 +28,7 @@ ureq = { workspace = true, optional = true }
# Explicitly depend on OpenSSL if applicable, so that we can add the
# `openssl/vendored` feature to it if `vendor-openssl` is enabled.
[target.'cfg(not(any(target_os = "windows", target_os = "macos", target_os = "ios", target_os = "watchos", target_os = "tvos")))'.dependencies]
openssl = { workspace = true }
openssl = { workspace = true, optional = true }
[features]
default = ["fonts", "packages"]
@ -37,7 +37,7 @@ default = ["fonts", "packages"]
fonts = ["dep:fontdb", "fontdb/memmap", "fontdb/fontconfig"]
# Add generic downloading utilities
downloads = ["dep:env_proxy", "dep:native-tls", "dep:ureq"]
downloads = ["dep:env_proxy", "dep:native-tls", "dep:ureq", "dep:openssl"]
# Add package downloading utilities, implies `downloads`
packages = ["downloads", "dep:dirs", "dep:flate2", "dep:tar"]

View File

@ -85,9 +85,11 @@ impl PackageStorage {
}
// Download from network if it doesn't exist yet.
self.download_package(spec, &dir, progress)?;
if dir.exists() {
return Ok(dir);
if spec.namespace == "preview" {
self.download_package(spec, &dir, progress)?;
if dir.exists() {
return Ok(dir);
}
}
}