Package: elan Version: 1.3.1-3 Severity: serious Tags: patch
A number of rust crates have been updated recently, as a result your package no longer builds, I have updated the patches to relax the dependencies and was able to succesfully build the package, I have not tested it beyond that.
From: Christopher Hoskin <mans0...@debian.org> Date: Wed, 26 Jan 2022 19:46:47 +0000 Subject: Revert "feat: support tar.zst archives" This reverts commit 3241c307cfcff08f02ae9856aa505c05fc14fcd7. --- Cargo.lock | 39 ---------------------------------- src/elan-dist/Cargo.toml | 1 - src/elan-dist/src/component/package.rs | 16 -------------- src/elan-dist/src/download.rs | 4 ++-- src/elan-dist/src/manifestation.rs | 25 +++++++++++----------- 5 files changed, 15 insertions(+), 70 deletions(-) Index: elan-1.3.1/Cargo.lock =================================================================== --- elan-1.3.1.orig/Cargo.lock +++ elan-1.3.1/Cargo.lock @@ -394,7 +394,6 @@ dependencies = [ "winapi 0.3.9", "winreg 0.8.0", "zip", - "zstd", ] [[package]] @@ -778,15 +777,6 @@ source = "registry+https://github.com/ru checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] -name = "jobserver" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" -dependencies = [ - "libc", -] - -[[package]] name = "js-sys" version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1873,32 +1863,3 @@ dependencies = [ "thiserror", "time 0.1.43", ] - -[[package]] -name = "zstd" -version = "0.9.0+zstd.1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "4.1.1+zstd.1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "1.6.1+zstd.1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33" -dependencies = [ - "cc", - "libc", -] Index: elan-1.3.1/src/elan-dist/Cargo.toml =================================================================== --- elan-1.3.1.orig/src/elan-dist/Cargo.toml +++ elan-1.3.1/src/elan-dist/Cargo.toml @@ -14,7 +14,6 @@ itertools = "0.10.0" url = "2.2.1" tar = "0.4.33" flate2 = "1.0.14" -zstd = "0.9" walkdir = "2.3.1" toml = "0.5.8" sha2 = ">= 0.9.2, <0.11" Index: elan-1.3.1/src/elan-dist/src/component/package.rs =================================================================== --- elan-1.3.1.orig/src/elan-dist/src/component/package.rs +++ elan-1.3.1/src/elan-dist/src/component/package.rs @@ -4,7 +4,6 @@ extern crate filetime; extern crate flate2; -extern crate zstd; extern crate tar; use errors::*; @@ -140,21 +139,6 @@ impl<'a> TarGzPackage<'a> { TarPackage::unpack(stream, path) } - pub fn unpack_file(path: &Path, into: &Path) -> Result<()> { - let file = File::open(path).chain_err(|| ErrorKind::ExtractingPackage)?; - Self::unpack(file, into) - } -} - -#[derive(Debug)] -pub struct TarZstdPackage<'a>(TarPackage<'a>); - -impl<'a> TarZstdPackage<'a> { - pub fn unpack<R: Read>(stream: R, path: &Path) -> Result<()> { - let stream = zstd::stream::read::Decoder::new(stream)?; - - TarPackage::unpack(stream, path) - } pub fn unpack_file(path: &Path, into: &Path) -> Result<()> { let file = File::open(path).chain_err(|| ErrorKind::ExtractingPackage)?; Self::unpack(file, into) Index: elan-1.3.1/src/elan-dist/src/download.rs =================================================================== --- elan-1.3.1.orig/src/elan-dist/src/download.rs +++ elan-1.3.1/src/elan-dist/src/download.rs @@ -99,9 +99,9 @@ impl<'a> DownloadCfg<'a> { Ok(()) } - pub fn download_and_check(&self, url_str: &str) -> Result<temp::File<'a>> { + pub fn download_and_check(&self, url_str: &str, ext: &str) -> Result<temp::File<'a>> { let url = utils::parse_url(url_str)?; - let file = self.temp_cfg.new_file()?; + let file = self.temp_cfg.new_file_with_ext("", ext)?; utils::download_file(&url, &file, None, &|n| (self.notify_handler)(n.into()))?; Index: elan-1.3.1/src/elan-dist/src/manifestation.rs =================================================================== --- elan-1.3.1.orig/src/elan-dist/src/manifestation.rs +++ elan-1.3.1/src/elan-dist/src/manifestation.rs @@ -1,6 +1,6 @@ //! Manifest a particular Lean version by installing it from a distribution server. -use component::{TarGzPackage, TarZstdPackage, ZipPackage}; +use component::{TarGzPackage, ZipPackage}; use download::DownloadCfg; use elan_utils::utils; use errors::*; @@ -57,15 +57,20 @@ impl Manifestation { } else { unreachable!(); }; - let url_substring = informal_target.clone() + "."; + let ext = if cfg!(target_os = "linux") { + ".tar.gz" + } else { + ".zip" + }; + let url_suffix = informal_target.clone() + ext; let re = Regex::new(format!(r#"/{}/releases/download/[^"]+"#, origin).as_str()).unwrap(); - let download_page_file = dlcfg.download_and_check(&url)?; + let download_page_file = dlcfg.download_and_check(&url, "")?; let mut html = String::new(); fs::File::open(&download_page_file as &::std::path::Path)?.read_to_string(&mut html)?; let url = re .find_iter(&html) .map(|m| m.as_str().to_string()) - .find(|m| m.contains(&url_substring)); + .find(|m| m.contains(&url_suffix)); if url.is_none() { return Err( format!("binary package was not provided for '{}'", informal_target).into(), @@ -73,7 +78,7 @@ impl Manifestation { } let url = format!("https://github.com/{}", url.unwrap()); - let installer_file = dlcfg.download_and_check(&url)?; + let installer_file = dlcfg.download_and_check(&url, ext)?; let prefix = self.prefix.path(); @@ -91,15 +96,11 @@ impl Manifestation { })?; // Extract new files - if url.ends_with(".tar.gz") { + if cfg!(target_os = "linux") { TarGzPackage::unpack_file(&installer_file, prefix)? - } else if url.ends_with(".tar.zst") { - TarZstdPackage::unpack_file(&installer_file, prefix)? - } else if url.ends_with(".zip") { - ZipPackage::unpack_file(&installer_file, prefix)? } else { - return Err(format!("unsupported archive format: {}", url).into()) - } + ZipPackage::unpack_file(&installer_file, prefix)? + }; Ok(()) }
From: Christopher Hoskin <mans0...@debian.org> Date: Wed, 26 Jan 2022 19:36:13 +0000 Subject: dependencies Forwarded: not-needed --- Cargo.toml | 19 +++++++------------ src/elan-dist/Cargo.toml | 11 +++-------- src/elan-utils/Cargo.toml | 15 +++++---------- 3 files changed, 15 insertions(+), 30 deletions(-) Index: elan-1.3.1/Cargo.toml =================================================================== --- elan-1.3.1.orig/Cargo.toml +++ elan-1.3.1/Cargo.toml @@ -32,30 +32,25 @@ error-chain = "0.12.4" itertools = "0.10.0" libc = "0.2.82" markdown = "0.3.0" -rand = "0.8.2" +rand = "^0.8.2" regex = "1.4.3" -remove_dir_all = "0.6.1" +remove_dir_all = ">= 0.5.2, < 0.8.0" same-file = "1.0.6" scopeguard = "1.1.0" serde = "1.0.119" serde_derive = "1.0.119" -serde_json = "1.0.61" -sha2 = "0.9.2" -tempfile = "3.2.0" -term = "0.7.0" +serde_json = "^1.0.41" +sha2 = ">= 0.9.2, < 0.11.0" +tempfile = "^3.1.0" +term = "^0.5.2" time = "0.3.4" toml = "0.5.8" url = "2.2.0" -wait-timeout = "0.2.0" +wait-timeout = "^0.1.5" zip = "0.5.9" tar = ">=0.4.36" flate2 = "1.0.14" -json = "0.12.4" - -[target."cfg(windows)".dependencies] -winapi = { version = "0.3.9", features = ["jobapi", "jobapi2", "processthreadsapi", "psapi", "synchapi", "winuser"] } -winreg = "0.8.0" -gcc = "0.3.55" +json = "0.12.0" [workspace] members = ["src/download", "src/elan-dist", "src/elan-utils"] Index: elan-1.3.1/src/elan-dist/Cargo.toml =================================================================== --- elan-1.3.1.orig/src/elan-dist/Cargo.toml +++ elan-1.3.1/src/elan-dist/Cargo.toml @@ -11,25 +11,20 @@ license = "MIT OR Apache-2.0" [dependencies] regex = "1.4.3" itertools = "0.10.0" -ole32-sys = "0.2.0" url = "2.2.1" tar = "0.4.33" flate2 = "1.0.14" zstd = "0.9" walkdir = "2.3.1" toml = "0.5.8" -sha2 = "0.9.3" -remove_dir_all = "0.7.0" +sha2 = ">= 0.9.2, <0.11" +remove_dir_all = ">= 0.5.2, <0.8" elan-utils = { path = "../elan-utils" } error-chain = "0.12.4" -json = "0.12.4" +json = "^0.12.0" zip = "0.5.13" filetime = "0.2.14" -[target."cfg(windows)".dependencies] -winapi = { version = "0.3.9", features = ["handleapi", "sysinfoapi", "tlhelp32", "winnt"] } -winreg = "0.8.0" - [target."cfg(not(windows))".dependencies] libc = "0.2.88" Index: elan-1.3.1/src/elan-utils/Cargo.toml =================================================================== --- elan-1.3.1.orig/src/elan-utils/Cargo.toml +++ elan-1.3.1/src/elan-utils/Cargo.toml @@ -11,19 +11,14 @@ license = "MIT OR Apache-2.0" download = { path = "../download" } error-chain = "0.12.4" libc = "0.2.88" -rand = "0.8.3" -remove_dir_all = "0.7.0" +rand = "^0.8.3" +remove_dir_all = ">= 0.5.2, <0.8" scopeguard = "1.1.0" -semver = "0.11.0" -sha2 = "0.9.3" +semver = "0.9.0" +sha2 = ">= 0.9.2, < 0.11" toml = "0.5.8" url = "2.2.1" curl = "0.4.34" -openssl = { version = "0.10", features = ["vendored"] } +openssl = { version = "0.10" } regex = "1.4.3" dirs = "3.0.1" - -[target."cfg(windows)".dependencies] -winapi = { version = "0.3.9", features = ["combaseapi", "errhandlingapi", "fileapi", "handleapi", - "ioapiset", "minwindef", "processthreadsapi", "shlobj", "shtypes", "userenv", "winbase", "winerror", "winnt", "winioctl"] } -winreg = "0.8.0"