Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gitea-cli for openSUSE:Factory checked in at 2026-11-06 19:59:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gitea-cli (Old) and /work/SRC/openSUSE:Factory/.gitea-cli.new.3759290 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gitea-cli" Fri Nov 6 19:59:39 2026 rev:2 rq:1395888 version:1.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/gitea-cli/gitea-cli.changes 2026-11-03 17:59:08.495297496 +0100 +++ /work/SRC/openSUSE:Factory/.gitea-cli.new.3759290/gitea-cli.changes 2026-11-06 20:07:55.179244122 +0100 @@ -1,0 +2,36 @@ +Thu Nov 5 19:37:22 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 1.1.0: + - Features: + - --dry-run previews write requests without sending them on + commands that only change Gitea. + - --template formats JSON output with Go templates and gh + functions. + - gt schema lists JSON fields of every command. + - GITEA_CLI_ERROR_FORMAT=json reports failures as JSON on + stderr. + - gt gpg-key manages GPG keys with token verification. + - gt issue and gt pr lock, unlock, pin, unpin and delete + support batch operations. + - gt pr edit and gt issue edit support bi-directional + dependency changes. + - --select interactive selector on issue, pr, release, and + repo lists. + - gt notification list --all-accounts lists notifications + across all logged-in accounts. + - gt repo license and gt repo gitignore manage repository + templates. + - gt project workflow manages project board workflows + (needs Gitea 29). + - gt admin adds user, org, cron, and email administration + commands. + - Internal: + - Update gitea.dev/sdk to v1.5.1. + +------------------------------------------------------------------- +Tue Nov 3 15:36:39 UTC 2026 - Michal Suchanek <[email protected]> + +- Fix crash on ppc64le (gh#golang/go#82324 bsc#1289089 bsc#1287612) + + unix-set-R12-before-the-ppc64x-syscall-branch.patch + +------------------------------------------------------------------- Old: ---- gitea-cli-1.0.0.tar.gz New: ---- gitea-cli-1.1.0.tar.gz unix-set-R12-before-the-ppc64x-syscall-branch.patch ----------(New B)---------- New:- Fix crash on ppc64le (gh#golang/go#82324 bsc#1289089 bsc#1287612) + unix-set-R12-before-the-ppc64x-syscall-branch.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gitea-cli.spec ++++++ --- /var/tmp/diff_new_pack.J9MqOz/_old 2026-11-06 20:07:57.244330664 +0100 +++ /var/tmp/diff_new_pack.J9MqOz/_new 2026-11-06 20:07:57.246330748 +0100 @@ -16,13 +16,14 @@ # Name: gitea-cli -Version: 1.0.0 +Version: 1.1.0 Release: 0 Summary: Command-line client for Gitea License: MIT URL: https://gitea.com/gitea/cli Source0: https://gitea.com/gitea/cli/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: vendor.tar.zst +Patch1: unix-set-R12-before-the-ppc64x-syscall-branch.patch BuildRequires: git-core BuildRequires: golang(API) >= 1.27 BuildRequires: golang-packaging @@ -36,7 +37,7 @@ It requires a Gitea server running version 28 or newer. %prep -%autosetup -n cli -a1 +%autosetup -n cli -a1 -p1 %build export GOTOOLCHAIN=local ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.J9MqOz/_old 2026-11-06 20:07:57.330334268 +0100 +++ /var/tmp/diff_new_pack.J9MqOz/_new 2026-11-06 20:07:57.339334645 +0100 @@ -1,5 +1,5 @@ -mtime: 1793653108 -commit: 523a3d194c548f0d5aefc271debfe4f016ff25bb7415f2e80c3679a87e99dc59 +mtime: 1793980662 +commit: f38cfab9821c03543812d153dc2baee1e3081fadfa47541f177ffaf9599a23d2 url: https://src.opensuse.org/mcepl/gitea-cli.git revision: factory ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-11-06 16:57:42.000000000 +0100 @@ -0,0 +1,6 @@ +*.obscpio +*.osc +_build.* +_service:* +.pbuild +gitea-cli-*-build/ ++++++ gitea-cli-1.0.0.tar.gz -> gitea-cli-1.1.0.tar.gz ++++++ ++++ 10167 lines of diff (skipped) ++++++ unix-set-R12-before-the-ppc64x-syscall-branch.patch ++++++ >From f5cb0306ac0e4b93b83ddd53c36d6693af3214e3 Mon Sep 17 00:00:00 2001 From: Juan Manuel Mendez Rey <[email protected]> Date: Mon, 19 Oct 2026 02:33:30 +0200 Subject: [PATCH] unix: set R12 before the ppc64x syscall branch The four ppc64x syscall trampolines jump to the global entry point of the generated ABI0 wrapper without setting R12. In a PIE that entry point derives its TOC from R12, as ELFv2 requires of a caller entering there, so the callee computes a wrong TOC and every global access afterwards reads or writes the wrong memory. Any PIE binary that calls unix.Syscall dies at startup on ppc64le. Loading the target address into R12 instead of R31 fixes it and keeps the indirect jump, so this does not reintroduce the linker range problem that golang/go#81981 reported. In a non-PIE build the wrapper has no TOC prologue and never reads R12, so nothing changes there. Measured on a ten line program that calls unix.Syscall once, cross compiled for ppc64le and run under qemu-user, three runs each: unpatched -buildmode=pie SIGSEGV 3/3 patched -buildmode=pie ok 3/3 unpatched no -buildmode=pie ok 3/3 Debian's ppc64el buildd hit this on real hardware while building siso, which is how it was found. Fixes golang/go#82324 Change-Id: I5f65469083461519f87597065646bf8b10750f72 Reviewed-on: https://go-review.googlesource.com/c/sys/+/850585 Reviewed-by: David Chase <[email protected]> Reviewed-by: Carlos Amedee <[email protected]> LUCI-TryBot-Result: [email protected] <[email protected]> Auto-Submit: Paul Murphy <[email protected]> Reviewed-by: Paul Murphy <[email protected]> --- unix/asm_linux_ppc64x.s | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s index 2e1f4c3e..daa85713 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -14,13 +14,13 @@ // The runtime may know about them. TEXT ·Syscall(SB),NOSPLIT,$0-56 - MOVD $syscall·Syscall(SB), R31 - MOVD R31, CTR + MOVD $syscall·Syscall(SB), R12 + MOVD R12, CTR JMP (CTR) TEXT ·Syscall6(SB),NOSPLIT,$0-80 - MOVD $syscall·Syscall6(SB), R31 - MOVD R31, CTR + MOVD $syscall·Syscall6(SB), R12 + MOVD R12, CTR JMP (CTR) TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 @@ -39,13 +39,13 @@ TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 RET TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - MOVD $syscall·RawSyscall(SB), R31 - MOVD R31, CTR + MOVD $syscall·RawSyscall(SB), R12 + MOVD R12, CTR JMP (CTR) TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - MOVD $syscall·RawSyscall6(SB), R31 - MOVD R31, CTR + MOVD $syscall·RawSyscall6(SB), R12 + MOVD R12, CTR JMP (CTR) TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 -- 2.51.0 ++++++ vendor.tar.zst ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gitea.dev/sdk/project_workflow.go new/vendor/gitea.dev/sdk/project_workflow.go --- old/vendor/gitea.dev/sdk/project_workflow.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/gitea.dev/sdk/project_workflow.go 2026-11-05 18:05:26.000000000 +0100 @@ -0,0 +1,191 @@ +// Copyright 2026 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package gitea + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "net/url" + "strings" + "time" +) + +// ProjectWorkflowEvent is what triggers a project workflow +type ProjectWorkflowEvent string + +const ( + // ProjectWorkflowEventItemAddedToProject runs when an issue or pull request is added to the project + ProjectWorkflowEventItemAddedToProject ProjectWorkflowEvent = "item_added_to_project" + // ProjectWorkflowEventItemRemovedFromProject runs when an issue or pull request is removed from the project + ProjectWorkflowEventItemRemovedFromProject ProjectWorkflowEvent = "item_removed_from_project" + // ProjectWorkflowEventItemReopened runs when an issue or pull request of the project is reopened + ProjectWorkflowEventItemReopened ProjectWorkflowEvent = "item_reopened" + // ProjectWorkflowEventItemClosed runs when an issue or pull request of the project is closed + ProjectWorkflowEventItemClosed ProjectWorkflowEvent = "item_closed" + // ProjectWorkflowEventItemColumnChanged runs when an item moves to another column + ProjectWorkflowEventItemColumnChanged ProjectWorkflowEvent = "item_column_changed" + // ProjectWorkflowEventCodeChangesRequested runs when a review requests changes on a pull request + ProjectWorkflowEventCodeChangesRequested ProjectWorkflowEvent = "code_changes_requested" + // ProjectWorkflowEventCodeReviewApproved runs when a review approves a pull request + ProjectWorkflowEventCodeReviewApproved ProjectWorkflowEvent = "code_review_approved" + // ProjectWorkflowEventPullRequestMerged runs when a pull request of the project is merged + ProjectWorkflowEventPullRequestMerged ProjectWorkflowEvent = "pull_request_merged" +) + +// ProjectWorkflowFilters restricts which items a project workflow runs for +type ProjectWorkflowFilters struct { + // "issue" or "pull_request", empty matches both + IssueType string `json:"issue_type,omitempty"` + // Only for item_column_changed + SourceColumnID int64 `json:"source_column_id,omitempty"` + // Only for item_column_changed + TargetColumnID int64 `json:"target_column_id,omitempty"` + // The item must have all of these labels + LabelIDs []int64 `json:"label_ids,omitempty"` +} + +// ProjectWorkflowActions describes what a project workflow does to a matching item +type ProjectWorkflowActions struct { + ColumnID int64 `json:"column_id,omitempty"` + AddLabelIDs []int64 `json:"add_label_ids,omitempty"` + RemoveLabelIDs []int64 `json:"remove_label_ids,omitempty"` + // "close" or "reopen" + IssueState string `json:"issue_state,omitempty"` +} + +// ProjectWorkflow represents an automation of a project +type ProjectWorkflow struct { + ID int64 `json:"id"` + Event ProjectWorkflowEvent `json:"event"` + Enabled bool `json:"enabled"` + Filters ProjectWorkflowFilters `json:"filters"` + Actions ProjectWorkflowActions `json:"actions"` + Created time.Time `json:"created_at"` + Updated time.Time `json:"updated_at"` +} + +// CreateProjectWorkflowOption options for creating a project workflow +type CreateProjectWorkflowOption struct { + Event ProjectWorkflowEvent `json:"event"` + // Defaults to true + Enabled *bool `json:"enabled,omitempty"` + Filters ProjectWorkflowFilters `json:"filters"` + Actions ProjectWorkflowActions `json:"actions"` +} + +// Validate the CreateProjectWorkflowOption struct +func (opt CreateProjectWorkflowOption) Validate() error { + if len(strings.TrimSpace(string(opt.Event))) == 0 { + return fmt.Errorf("event is empty") + } + return nil +} + +// EditProjectWorkflowOption options for editing a project workflow, omitted fields are left unchanged +type EditProjectWorkflowOption struct { + Enabled *bool `json:"enabled,omitempty"` + Filters *ProjectWorkflowFilters `json:"filters,omitempty"` + Actions *ProjectWorkflowActions `json:"actions,omitempty"` +} + +// workflowPath returns the path of a single workflow of a project +func (s ProjectScope) workflowPath(projectID, workflowID int64) (string, error) { + base, err := s.projectPath(projectID) + if err != nil { + return "", err + } + return fmt.Sprintf("%s/workflows/%d", base, workflowID), nil +} + +// ListProjectWorkflows lists the workflows of a project. +// Requires Gitea 29.0.0 or later. +func (c *ProjectsService) ListProjectWorkflows(ctx context.Context, scope ProjectScope, projectID int64, opt ListOptions) ([]*ProjectWorkflow, *Response, error) { + if err := c.checkServerVersionGreaterThanOrEqual(ctx, version29_0_0); err != nil { + return nil, nil, err + } + base, err := scope.projectPath(projectID) + if err != nil { + return nil, nil, err + } + opt.setDefaults() + workflows := make([]*ProjectWorkflow, 0, opt.PageSize) + + link, _ := url.Parse(base + "/workflows") + link.RawQuery = opt.getURLQuery().Encode() + resp, err := c.getParsedResponse(ctx, "GET", link.String(), jsonHeader, nil, &workflows) + return workflows, resp, err +} + +// GetProjectWorkflow gets one workflow of a project. +// Requires Gitea 29.0.0 or later. +func (c *ProjectsService) GetProjectWorkflow(ctx context.Context, scope ProjectScope, projectID, workflowID int64) (*ProjectWorkflow, *Response, error) { + if err := c.checkServerVersionGreaterThanOrEqual(ctx, version29_0_0); err != nil { + return nil, nil, err + } + path, err := scope.workflowPath(projectID, workflowID) + if err != nil { + return nil, nil, err + } + workflow := new(ProjectWorkflow) + resp, err := c.getParsedResponse(ctx, "GET", path, jsonHeader, nil, workflow) + return workflow, resp, err +} + +// CreateProjectWorkflow adds a workflow to a project. +// Requires Gitea 29.0.0 or later. +func (c *ProjectsService) CreateProjectWorkflow(ctx context.Context, scope ProjectScope, projectID int64, opt CreateProjectWorkflowOption) (*ProjectWorkflow, *Response, error) { + if err := c.checkServerVersionGreaterThanOrEqual(ctx, version29_0_0); err != nil { + return nil, nil, err + } + if err := opt.Validate(); err != nil { + return nil, nil, err + } + base, err := scope.projectPath(projectID) + if err != nil { + return nil, nil, err + } + body, err := json.Marshal(&opt) + if err != nil { + return nil, nil, err + } + workflow := new(ProjectWorkflow) + resp, err := c.getParsedResponse(ctx, "POST", base+"/workflows", jsonHeader, bytes.NewReader(body), workflow) + return workflow, resp, err +} + +// EditProjectWorkflow changes a workflow of a project. +// Requires Gitea 29.0.0 or later. +func (c *ProjectsService) EditProjectWorkflow(ctx context.Context, scope ProjectScope, projectID, workflowID int64, opt EditProjectWorkflowOption) (*ProjectWorkflow, *Response, error) { + if err := c.checkServerVersionGreaterThanOrEqual(ctx, version29_0_0); err != nil { + return nil, nil, err + } + path, err := scope.workflowPath(projectID, workflowID) + if err != nil { + return nil, nil, err + } + body, err := json.Marshal(&opt) + if err != nil { + return nil, nil, err + } + workflow := new(ProjectWorkflow) + resp, err := c.getParsedResponse(ctx, "PATCH", path, jsonHeader, bytes.NewReader(body), workflow) + return workflow, resp, err +} + +// DeleteProjectWorkflow removes a workflow from a project. +// Requires Gitea 29.0.0 or later. +func (c *ProjectsService) DeleteProjectWorkflow(ctx context.Context, scope ProjectScope, projectID, workflowID int64) (*Response, error) { + if err := c.checkServerVersionGreaterThanOrEqual(ctx, version29_0_0); err != nil { + return nil, err + } + path, err := scope.workflowPath(projectID, workflowID) + if err != nil { + return nil, err + } + _, resp, err := c.getResponse(ctx, "DELETE", path, jsonHeader, nil) + return resp, err +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gitea.dev/sdk/version.go new/vendor/gitea.dev/sdk/version.go --- old/vendor/gitea.dev/sdk/version.go 2026-11-02 18:35:07.000000000 +0100 +++ new/vendor/gitea.dev/sdk/version.go 2026-11-05 18:05:26.000000000 +0100 @@ -144,6 +144,7 @@ version1_26_0 = version.Must(version.NewVersion("1.26.0")) version1_27_0 = version.Must(version.NewVersion("1.27.0")) version28_0_0 = version.Must(version.NewVersion("28.0.0")) + version29_0_0 = version.Must(version.NewVersion("29.0.0")) ) // ErrUnknownVersion is an unknown version from the API diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2026-11-02 18:35:07.000000000 +0100 +++ new/vendor/modules.txt 2026-11-05 18:05:26.000000000 +0100 @@ -33,7 +33,7 @@ ## explicit; go 1.14 code.gitea.io/gitea-vet code.gitea.io/gitea-vet/checks -# gitea.dev/sdk v1.5.0 +# gitea.dev/sdk v1.5.1 ## explicit; go 1.26.0 gitea.dev/sdk # github.com/42wim/httpsig v1.3.0
