aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-30 18:56:55 +0900
committerOphestra <cat@gensokyo.uk>2026-05-30 18:56:55 +0900
commit8b87e0eb7628dbdc32f966c1b3fb9a51e76e2a48 (patch)
tree7a961771ef5ff219df82c28f99f254046d73d22a
parentf4215ddda5e91a330e1f49abd7a55e03091bf908 (diff)
internal/rosa: annotate blocked updates
These situations, while unfortunate, are inevitable at a larger scale. This change enables annotation and optional hiding of blocked updates. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/mbf/main.go24
-rw-r--r--internal/rosa/package/openssl.az2
-rw-r--r--internal/rosa/state.go3
3 files changed, 28 insertions, 1 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 9cde0a94..ed7b71bf 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -360,7 +360,10 @@ func main() {
)
{
- var flagJobs int
+ var (
+ flagJobs int
+ flagNoBlock bool
+ )
c.NewCommand("updates", command.UsageInternal, func([]string) error {
var (
errsMu sync.Mutex
@@ -379,6 +382,11 @@ func main() {
continue
}
+ if !flagNoBlock && meta.Blocked != "" {
+ msg.Verbosef("%s is blocked: %s", meta.Name, meta.Blocked)
+ continue
+ }
+
v, err := meta.GetVersions(ctx)
if err != nil {
errsMu.Lock()
@@ -419,9 +427,23 @@ func main() {
&flagJobs,
"j", command.IntFlag(32),
"Maximum number of simultaneous connections",
+ ).Flag(
+ &flagNoBlock,
+ "ignore-block", command.BoolFlag(false),
+ "Inhibit update blocking",
)
}
+ c.NewCommand("blocked", command.UsageInternal, func([]string) error {
+ for _, p := range rosa.Native().CollectAll() {
+ meta, _ := rosa.Native().Std().Load(p)
+ if meta.Blocked != "" {
+ fmt.Printf("%s: %s\n", meta.Name, meta.Blocked)
+ }
+ }
+ return nil
+ })
+
c.NewCommand(
"daemon",
"Service artifact IR with Rosa OS extensions",
diff --git a/internal/rosa/package/openssl.az b/internal/rosa/package/openssl.az
index 86e438bc..90dc616a 100644
--- a/internal/rosa/package/openssl.az
+++ b/internal/rosa/package/openssl.az
@@ -5,6 +5,8 @@ package openssl {
// strange malformed tags treated as pre-releases in Anitya
latest = anityaFallback;
+ block = "python";
+
version# = "3.6.2";
source = remoteGitHubRelease {
suffix = "openssl/openssl";
diff --git a/internal/rosa/state.go b/internal/rosa/state.go
index 1aa37ea9..a53a0ffa 100644
--- a/internal/rosa/state.go
+++ b/internal/rosa/state.go
@@ -96,6 +96,8 @@ type Metadata struct {
//
// [Anitya]: https://release-monitoring.org/
ID int `json:"-"`
+ // Maintainer-facing reason of blocked update.
+ Blocked string `json:"block,omitempty"`
// Whether to exclude from exported functions.
Exclude bool `json:"exclude,omitempty"`
@@ -944,6 +946,7 @@ func (ctx *evalContext) pf(
k("version"): &meta.Version,
k("exclude"): &meta.Exclude,
k("anitya"): &anitya,
+ k("block"): &meta.Blocked,
k("latest"): &meta.latest,
k("writable"): &attr.Writable,