diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 01db2e0..e23e7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,15 @@ /delve-1.20.1.tar.gz /delve-1.20.2.tar.gz /delve-1.21.0.tar.gz +/delve-1.21.2.tar.gz +/delve-1.22.0.tar.gz +/delve-1.22.1.tar.gz +/delve-1.23.0.tar.gz +/delve-1.23.1.tar.gz +/delve-1.24.0.tar.gz +/delve-1.24.1.tar.gz +/delve-1.24.2.tar.gz +/delve-1.25.0.tar.gz +/delve-1.25.1.tar.gz +/delve-1.25.2.tar.gz +/delve-1.26.0.tar.gz diff --git a/.packit.yml b/.packit.yml new file mode 100644 index 0000000..44c2dbe --- /dev/null +++ b/.packit.yml @@ -0,0 +1,27 @@ +specfile_path: delve.spec +files_to_sync: + - delve.spec + - .packit.yaml +upstream_package_name: delve +upstream_project_url: https://github.com/go-delve/delve +downstream_package_name: delve +upstream_tag_template: v{version} + +actions: + changelog-entry: + - bash -c "echo - New release ${PACKIT_PROJECT_VERSION}" + +jobs: +- job: pull_from_upstream + trigger: release + dist_git_branches: + rawhide: + fast_forward_merge_into: [fedora-branched] + +- job: koji_build + trigger: commit + dist_git_branches: fedora-all + +- job: bodhi_update + trigger: commit + dist_git_branches: fedora-all diff --git a/0001-Skip-TestCgoStacktrace2.patch b/0001-Skip-TestCgoStacktrace2.patch deleted file mode 100644 index 4d2e0ac..0000000 --- a/0001-Skip-TestCgoStacktrace2.patch +++ /dev/null @@ -1,24 +0,0 @@ -From dff6a7871debe62db762eea34a1356f11fda305c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lex=20S=C3=A1ez?= -Date: Mon, 31 Jul 2023 14:46:54 +0200 -Subject: [PATCH] Skip TestCgoStacktrace2 - ---- - pkg/proc/proc_test.go | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pkg/proc/proc_test.go b/pkg/proc/proc_test.go -index 0cb84f6b..88db4c43 100644 ---- a/pkg/proc/proc_test.go -+++ b/pkg/proc/proc_test.go -@@ -4606,6 +4606,7 @@ func TestCgoStacktrace2(t *testing.T) { - skipOn(t, "upstream issue", "windows") - skipOn(t, "broken", "386") - skipOn(t, "broken", "arm64") -+ skipOn(t, "broken", "amd64") - protest.MustHaveCgo(t) - // If a panic happens during cgo execution the stacktrace should show the C - // function that caused the problem. --- -2.41.0 - diff --git a/0001-Skipping-due-issues-with-the-go-version-in-Fedora.patch b/0001-Skipping-due-issues-with-the-go-version-in-Fedora.patch new file mode 100644 index 0000000..943fee4 --- /dev/null +++ b/0001-Skipping-due-issues-with-the-go-version-in-Fedora.patch @@ -0,0 +1,37 @@ +From 70a9601e1b6e4d97c2c34e1989eba5726df97131 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lex=20S=C3=A1ez?= +Date: Wed, 31 Jul 2024 16:54:34 +0200 +Subject: [PATCH] Skipping due issues with the go version in Fedora + +If the Go package gets an update, Koschei will trigger a Delve build +that will fail because Delve is not supporting the newer version of Go. + +Skipping these tests is not ideal but gore returns an error if the go +version is missing. +--- + pkg/proc/proc_test.go | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/pkg/proc/proc_test.go b/pkg/proc/proc_test.go +index 3437a2a4..a602dbcb 100644 +--- a/pkg/proc/proc_test.go ++++ b/pkg/proc/proc_test.go +@@ -3236,6 +3236,7 @@ func TestShadowedFlag(t *testing.T) { + func TestDebugStripped(t *testing.T) { + // Currently only implemented for Linux ELF and macOS Mach-O executables. + // TODO(derekparker): Add support for PE. ++ skipOn(t, "not working on Fedora CI", "linux") + skipOn(t, "not working on windows", "windows") + skipOn(t, "not working on freebsd", "freebsd") + skipOn(t, "not working on linux/386", "linux", "386") +@@ -3265,6 +3266,7 @@ func TestDebugStripped(t *testing.T) { + + func TestDebugStripped2(t *testing.T) { + // TODO(derekparker): Add support for PE. ++ skipOn(t, "not working on Fedora CI", "linux") + skipOn(t, "not working on windows", "windows") + skipOn(t, "not working on freebsd", "freebsd") + skipOn(t, "not working on linux/386", "linux", "386") +-- +2.45.2 + diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..9bb65f0 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 1.13.0.post1.dev2+g84134016c. diff --git a/bundled-deps.sh b/bundled-deps.sh new file mode 100755 index 0000000..51dd446 --- /dev/null +++ b/bundled-deps.sh @@ -0,0 +1,22 @@ +#! /bin/bash +# Copyright (C) 2021 Jakub Čajka jcajka@redhat.com +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +provides="" +for bundle in $(find -name modules.txt); do +provides="$provides\n$(cat "$bundle" | grep "^# " | grep -v "# explicit" | sed -r s/"^#.* => "// | sed -r "s/# //" | sed -r "s:(.*) v(.*):Provides\: bundled(golang(\1)) = \2:")" +done +echo -e "$provides" | sed 's/-/./g' | sort -u diff --git a/delve.spec b/delve.spec index b398e93..baac82f 100644 --- a/delve.spec +++ b/delve.spec @@ -1,19 +1,23 @@ # Run tests in check section %bcond_without check +%ifarch ppc64le +%global exp "-tags=exp.linuxppc64le" +%endif + # https://github.com/go-delve/delve %global goipath github.com/go-delve/delve -Version: 1.21.0 +Version: 1.26.0 %global common_description %{expand: -Delve is a debugger for the Go programming language. The goal of the project -is to provide a simple, full featured debugging tool for Go. Delve should be -easy to invoke and easy to use. Chances are if you're using a debugger, things -aren't going your way. With that in mind, Delve should stay out of your way as +Delve is a debugger for the Go programming language. The goal of the project +is to provide a simple, full featured debugging tool for Go. Delve should be +easy to invoke and easy to use. Chances are if you're using a debugger, things +aren't going your way. With that in mind, Delve should stay out of your way as much as possible.} -# Currently Delve only supports x86_64 and aarch64 -%global golang_arches x86_64 aarch64 +# Currently Delve only supports x86_64, aarch64, and ppc64le +%global golang_arches x86_64 aarch64 ppc64le %gometa @@ -22,68 +26,60 @@ Release: %autorelease Summary: A debugger for the Go programming language # Detected licences # - Expat License at 'LICENSE' +# It is a SPDX license already License: MIT URL: %{gourl} Source0: %{gosource} -# RHEL builds with vendored dependencies -%if %{undefined rhel} -# This dependencies are only in use in x86_64 -%ifarch x86_64 -BuildRequires: golang(github.com/cilium/ebpf) -BuildRequires: golang(github.com/cilium/ebpf/link) -BuildRequires: golang(github.com/cilium/ebpf/ringbuf) -%endif -BuildRequires: golang(github.com/cosiner/argv) -BuildRequires: golang(github.com/creack/pty) -BuildRequires: golang(github.com/derekparker/trie) -BuildRequires: golang(github.com/go-delve/liner) -BuildRequires: golang(github.com/google/go-dap) -BuildRequires: golang(github.com/hashicorp/golang-lru/simplelru) -BuildRequires: golang(github.com/mattn/go-isatty) -BuildRequires: golang(github.com/sirupsen/logrus) -BuildRequires: golang(github.com/spf13/cobra) -BuildRequires: golang(github.com/spf13/cobra/doc) -BuildRequires: golang(golang.org/x/arch/arm64/arm64asm) -BuildRequires: golang(golang.org/x/arch/ppc64/ppc64asm) -BuildRequires: golang(golang.org/x/arch/x86/x86asm) -BuildRequires: golang(golang.org/x/sys/unix) -BuildRequires: golang(golang.org/x/tools/go/packages) -BuildRequires: golang(gopkg.in/yaml.v2) -BuildRequires: golang(go.starlark.net/resolve) -BuildRequires: golang(go.starlark.net/starlark) -BuildRequires: golang(go.starlark.net/syntax) -%endif BuildRequires: lsof BuildRequires: git -Patch1: 0001-Skip-TestCgoStacktrace2.patch +# Bundled/Vendored provides generated by bundled-deps.sh based on the in tree module data +# - in version filed substituted with . per versioning guidelines +Provides: bundled(golang(github.com/cilium/ebpf)) = 0.11.0 +Provides: bundled(golang(github.com/cosiner/argv)) = 0.1.0 +Provides: bundled(golang(github.com/cpuguy83/go.md2man/v2)) = 2.0.2 +Provides: bundled(golang(github.com/creack/pty)) = 1.1.20 +Provides: bundled(golang(github.com/derekparker/trie)) = 0.0.0.20230829180723.39f4de51ef7d +Provides: bundled(golang(github.com/go.delve/liner)) = 1.2.3.0.20231231155935.4726ab1d7f62 +Provides: bundled(golang(github.com/google/go.dap)) = 0.12.0 +Provides: bundled(golang(github.com/hashicorp/golang.lru)) = 1.0.2 +Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = 1.1.0 +Provides: bundled(golang(github.com/mattn/go.colorable)) = 0.1.13 +Provides: bundled(golang(github.com/mattn/go.isatty)) = 0.0.20 +Provides: bundled(golang(github.com/mattn/go.runewidth)) = 0.0.13 +Provides: bundled(golang(github.com/rivo/uniseg)) = 0.2.0 +Provides: bundled(golang(github.com/russross/blackfriday/v2)) = 2.1.0 +Provides: bundled(golang(github.com/sirupsen/logrus)) = 1.9.3 +Provides: bundled(golang(github.com/spf13/cobra)) = 1.7.0 +Provides: bundled(golang(github.com/spf13/pflag)) = 1.0.5 +Provides: bundled(golang(github.com/stretchr/testify)) = 1.8.4 +Provides: bundled(golang(golang.org/x/arch)) = 0.6.0 +Provides: bundled(golang(golang.org/x/exp)) = 0.0.0.20230224173230.c95f2b4c22f2 +Provides: bundled(golang(golang.org/x/mod)) = 0.14.0 +Provides: bundled(golang(golang.org/x/sys)) = 0.17.0 +Provides: bundled(golang(golang.org/x/tools)) = 0.14.0 +Provides: bundled(golang(gopkg.in/yaml.v3)) = 3.0.1 +Provides: bundled(golang(go.starlark.net)) = 0.0.0.20231101134539.556fd59b42f6 + +Patch0001: 0001-Skipping-due-issues-with-the-go-version-in-Fedora.patch %description %{common_description} %prep echo "=== Start prep ===" -%if %{defined rhel} %goprep -k # unpack vendored dependencies to GOPATH tar c -C vendor/ . | tar x -C %{gobuilddir}/src %autopatch -v -p1 -%else -%goprep -%autopatch -v -p1 - -%generate_buildrequires -%go_generate_buildrequires -%endif %build echo "=== Start build ===" -%gobuild -o %{gobuilddir}/bin/dlv %{goipath}/cmd/dlv +%gobuild %{?exp} -o %{gobuilddir}/bin/dlv %{goipath}/cmd/dlv echo "=== End build ===" %install -%gopkginstall install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ @@ -92,20 +88,26 @@ install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ export GO111MODULE=off export GOPATH=%{buildroot}/%{gopath}:%{gobuilddir}:%{gopath} delvepath=%{buildroot}/%{gopath}/src/%{goipath} +mkdir -p $delvepath +mkdir -p $delvepath/pkg/dwarf/line +mkdir -p $delvepath/pkg/proc/internal cp -r _fixtures $delvepath +cp -r pkg/dwarf $delvepath/pkg/ cp -r pkg/dwarf/line/_testdata $delvepath/pkg/dwarf/line cp -r pkg/proc/internal/ebpf $delvepath/pkg/proc/internal/ pushd $delvepath echo "=== Start tests ===" -%gotest $(go list ./... | awk '!/(cmd|scripts)/ {print $1}') +for d in $(go list %{?exp} ./... | grep -v cmd | grep -v scripts); do + go test %{?exp} ${d} -skip TestGuessSubstitutePath +done echo "=== End tests ===" rm -rf $delvepath popd %endif %files -%license LICENSE %{?rhel:vendor/modules.txt} +%license LICENSE vendor/modules.txt %doc CONTRIBUTING.md CHANGELOG.md %doc Documentation/* %{_bindir}/dlv diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..eaa8bdf --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + url: https://src.fedoraproject.org/tests/delve +execute: + how: tmt diff --git a/sources b/sources index df8bd86..dd76784 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (delve-1.21.0.tar.gz) = 2b2249b14d5565fbb59408251a1272db8e092ab7ac7cb65d33b810b89f1352d3b487a8d582dde8f1102d0362ee142e6106c98cd217c5031c9a09497d20a0cdde +SHA512 (delve-1.26.0.tar.gz) = 1b9d5c7b91bbf1df47c1fdb3553893497defe7a71ae9c7cef160cf15afac391fe77f66b748e028b29aa3456c21cfc079c2751afb788cb065ee8580501d21ad0e