diff --git a/testing/rustic/APKBUILD b/testing/rustic/APKBUILD index a2521e122c5..8ec266a0e24 100644 --- a/testing/rustic/APKBUILD +++ b/testing/rustic/APKBUILD @@ -18,9 +18,14 @@ subpackages=" $pkgname-fish-completion $pkgname-zsh-completion " -source="https://github.com/rustic-rs/rustic/archive/v$pkgver/rustic-$pkgver.tar.gz" +source="https://github.com/rustic-rs/rustic/archive/v$pkgver/rustic-$pkgver.tar.gz + make-self-update-optional.patch + " options="net" # fetch dependencies +# Disable self-update feature. +_cargo_opts="--no-default-features --frozen" + prepare() { default_prepare @@ -38,7 +43,7 @@ prepare() { } build() { - cargo auditable build --frozen --release + cargo auditable build $_cargo_opts --release target/release/rustic completions bash > $pkgname.bash target/release/rustic completions fish > $pkgname.fish @@ -46,7 +51,7 @@ build() { } check() { - cargo test --frozen + cargo test $_cargo_opts } package() { @@ -59,4 +64,5 @@ package() { sha512sums=" 44b1e2be7336f74e832c33d06101b2ad1ba79123926bd00f3e4884cd49abd75e727e26636451bc393d154ec438fd9168ae9dce8bfa4ec9ffd371b89b6b426dcd rustic-0.6.1.tar.gz +f63047855f5e01ea547b921af54e81dc63559e4dee15811e6cfdbf5e503543bb76b0d2612b660c7adff1751e5564186e386145f61f50d0188e5d8215c2586962 make-self-update-optional.patch " diff --git a/testing/rustic/make-self-update-optional.patch b/testing/rustic/make-self-update-optional.patch new file mode 100644 index 00000000000..ffe5bef4a4d --- /dev/null +++ b/testing/rustic/make-self-update-optional.patch @@ -0,0 +1,101 @@ +Patch-Source: https://github.com/rustic-rs/rustic/pull/975 +-- +From b32769f275adbd719453aefe68785c303664208a Mon Sep 17 00:00:00 2001 +From: Jakub Jirutka +Date: Mon, 1 Jan 2024 09:11:13 +0100 +Subject: [PATCH 2/2] feat(cli): Allow building without self-update feature + (#975) + +Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com> +--- + Cargo.toml | 7 ++++--- + src/commands.rs | 1 + + src/commands/self_update.rs | 13 +++++++++---- + 3 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/Cargo.toml b/Cargo.toml +index 24486f1..054a994 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -31,9 +31,10 @@ description = { workspace = true } + members = ["crates/rustic_testing", "xtask"] + + [features] +-default = [] ++default = ["self-update"] + mimalloc = ["dep:mimalloc"] + jemallocator = ["dep:jemallocator-global"] ++self-update = ["dep:self_update", "dep:semver"] + + [[bin]] + name = "rustic" +@@ -67,8 +68,8 @@ serde_with = { workspace = true } + + # other dependencies + chrono = { workspace = true } +-self_update = { workspace = true } +-semver = { workspace = true } ++self_update = { workspace = true, optional = true } ++semver = { workspace = true, optional = true } + + # commands + clap = { workspace = true } +diff --git a/src/commands.rs b/src/commands.rs +index 07473d3..88432ab 100644 +--- a/src/commands.rs ++++ b/src/commands.rs +@@ -101,6 +101,7 @@ enum RusticCmd { + ShowConfig(ShowConfigCmd), + + /// Update to the latest rustic release ++ #[cfg_attr(not(feature = "self-update"), clap(hide = true))] + SelfUpdate(SelfUpdateCmd), + + /// Remove unused data or repack repository pack files +diff --git a/src/commands/self_update.rs b/src/commands/self_update.rs +index dff8fb3..f9540e4 100644 +--- a/src/commands/self_update.rs ++++ b/src/commands/self_update.rs +@@ -5,8 +5,6 @@ use crate::{Application, RUSTIC_APP}; + use abscissa_core::{status_err, Command, Runnable, Shutdown}; + + use anyhow::Result; +-use self_update::cargo_crate_version; +-use semver::Version; + + /// `self-update` subcommand + #[derive(clap::Parser, Command, Debug)] +@@ -26,8 +24,9 @@ impl Runnable for SelfUpdateCmd { + } + + impl SelfUpdateCmd { ++ #[cfg(feature = "self-update")] + fn inner_run(&self) -> Result<()> { +- let current_version = Version::parse(cargo_crate_version!())?; ++ let current_version = semver::Version::parse(self_update::cargo_crate_version!())?; + + let release = self_update::backends::github::Update::configure() + .repo_owner("rustic-rs") +@@ -40,7 +39,7 @@ impl SelfUpdateCmd { + + let latest_release = release.get_latest_release()?; + +- let upstream_version = Version::parse(&latest_release.version)?; ++ let upstream_version = semver::Version::parse(&latest_release.version)?; + + match current_version.cmp(&upstream_version) { + std::cmp::Ordering::Greater => { +@@ -62,4 +61,10 @@ impl SelfUpdateCmd { + + Ok(()) + } ++ #[cfg(not(feature = "self-update"))] ++ fn inner_run(&self) -> Result<()> { ++ anyhow::bail!( ++ "This version of rustic was built without the \"self-update\" feature. Please use your system package manager to update it." ++ ); ++ } + } +-- +2.43.0 +