From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D7CEC1580B9 for ; Thu, 26 Aug 2021 07:51:44 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0CA58E083D; Thu, 26 Aug 2021 07:51:44 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DB17DE083D for ; Thu, 26 Aug 2021 07:51:43 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A96C5335D76 for ; Thu, 26 Aug 2021 07:51:42 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 04FDC5A0 for ; Thu, 26 Aug 2021 07:51:41 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1629963632.4b0b01717cd58331181101a7d94cdba88a912237.gyakovlev@gentoo> Subject: [gentoo-commits] proj/cargo-ebuild:master commit in: /, src/ X-VCS-Repository: proj/cargo-ebuild X-VCS-Files: Cargo.lock src/lib.rs X-VCS-Directories: src/ / X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: 4b0b01717cd58331181101a7d94cdba88a912237 X-VCS-Branch: master Date: Thu, 26 Aug 2021 07:51:41 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 93dc29ac-1eeb-441c-937b-698af98151c4 X-Archives-Hash: dac4696cf09dc44c8bf6a1d880e15633 commit: 4b0b01717cd58331181101a7d94cdba88a912237 Author: Leonardo Neumann neumann dev br> AuthorDate: Sat Aug 14 20:03:22 2021 +0000 Commit: Georgy Yakovlev gentoo org> CommitDate: Thu Aug 26 07:40:32 2021 +0000 URL: https://gitweb.gentoo.org/proj/cargo-ebuild.git/commit/?id=4b0b0171 Remove cargo-lock dependency Closes: https://github.com/gentoo/cargo-ebuild/pull/7 Signed-off-by: Leonardo Neumann neumann.dev.br> Signed-off-by: Georgy Yakovlev gentoo.org> Cargo.lock | 4 ++-- src/lib.rs | 46 +++++----------------------------------------- 2 files changed, 7 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e7a9187..431eb9d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -349,9 +349,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1fa8cddc8fbbee11227ef194b5317ed014b8acbf15139bd716a18ad3fe99ec5" +checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" [[package]] name = "log" diff --git a/src/lib.rs b/src/lib.rs index db9d54b..29fd0c2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,40 +12,15 @@ mod license; mod metadata; use anyhow::{format_err, Context, Result}; -use cargo_lock::Lockfile; use cargo_metadata::CargoOpt; use cargo_metadata::MetadataCommand; use std::collections::BTreeSet; use std::fs::OpenOptions; use std::path::{Path, PathBuf}; -use std::process::Command; use license::{normalize_license, split_spdx_license}; use metadata::EbuildConfig; -fn generate_lockfile(manifest_path: Option) -> Result<()> { - let cargo = std::env::var("CARGO") - .map(PathBuf::from) - .unwrap_or_else(|_| PathBuf::from("cargo")); - - let mut lock_cmd = Command::new(cargo); - lock_cmd.arg("generate-lockfile"); - - if let Some(path) = manifest_path.as_ref() { - lock_cmd.arg("--manifest-path"); - lock_cmd.arg(path.as_os_str()); - } - - let lock_output = lock_cmd.output()?; - - if !lock_output.status.success() { - let stderr = String::from_utf8_lossy(&lock_output.stderr); - return Err(format_err!("unable to generate lockfile:\n{}", stderr)); - } - - Ok(()) -} - pub fn gen_ebuild_data(manifest_path: Option) -> Result { let mut cmd = MetadataCommand::new(); @@ -97,29 +72,18 @@ pub fn gen_ebuild_data(manifest_path: Option) -> Result { if pkg.license_file.is_some() { println!("WARNING: {} uses a license-file, not handled", pkg.name); } - } - let root_pkg = root_pkg - .ok_or_else(|| format_err!("unable to determine package to generate ebuild for"))?; - - let lockfile_path = metadata.workspace_root.join("Cargo.lock"); - - // Generate lockfile if it doesn't exists - if std::fs::metadata(&lockfile_path).is_err() { - generate_lockfile(manifest_path)?; - } - - // Check for packages that must be fetched from default registry - let lockfile = Lockfile::load(lockfile_path)?; - - for pkg in lockfile.packages { if let Some(src) = pkg.source { - if src.is_default_registry() { + // Check if the crate is available at crates.io + if src.is_crates_io() { crates.push(format!("\t{}-{}\n", pkg.name, pkg.version)); } } } + let root_pkg = root_pkg + .ok_or_else(|| format_err!("unable to determine package to generate ebuild for"))?; + Ok(EbuildConfig::from_package(root_pkg, crates, licenses)) }