Initial spec file
This commit is contained in:
parent
d30f6c2bdd
commit
1881006b0f
94
delve.spec
Normal file
94
delve.spec
Normal file
@ -0,0 +1,94 @@
|
||||
# Run tests in check section
|
||||
%bcond_without check
|
||||
|
||||
# https://github.com/derekparker/delve
|
||||
%global goipath github.com/derekparker/delve
|
||||
Version: 1.1.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
|
||||
much as possible.}
|
||||
|
||||
%gometa
|
||||
|
||||
Name: delve
|
||||
Release: 1%{?dist}
|
||||
Summary: A debugger for the Go programming language
|
||||
# Detected licences
|
||||
# - Expat License at 'LICENSE'
|
||||
License: MIT
|
||||
URL: %{gourl}
|
||||
Source0: %{gosource}
|
||||
|
||||
Patch1: ./eval-symlink-in-test.patch
|
||||
Patch2: ./test-fixture-vendor-to-internal.patch
|
||||
|
||||
BuildRequires: golang(github.com/cosiner/argv)
|
||||
BuildRequires: golang(github.com/mattn/go-isatty)
|
||||
BuildRequires: golang(github.com/peterh/liner)
|
||||
BuildRequires: golang(github.com/pkg/profile)
|
||||
BuildRequires: golang(github.com/sirupsen/logrus)
|
||||
BuildRequires: golang(github.com/spf13/cobra)
|
||||
BuildRequires: golang(golang.org/x/arch/x86/x86asm)
|
||||
BuildRequires: golang(golang.org/x/sys/unix)
|
||||
BuildRequires: golang(golang.org/x/sys/windows)
|
||||
BuildRequires: golang(gopkg.in/yaml.v2)
|
||||
|
||||
%description
|
||||
%{common_description}
|
||||
|
||||
|
||||
%package -n %{goname}-devel
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{goname}-devel
|
||||
%{common_description}
|
||||
|
||||
This package contains library source intended for
|
||||
building other packages which use import path with
|
||||
%{goipath} prefix.
|
||||
|
||||
|
||||
%prep
|
||||
%forgesetup
|
||||
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
rm -rf vendor/
|
||||
|
||||
|
||||
%build
|
||||
%gobuildroot
|
||||
%gobuild -o _bin/dlv %{goipath}/cmd/dlv
|
||||
|
||||
|
||||
%install
|
||||
%goinstall
|
||||
install -Dpm 0755 _bin/dlv %{buildroot}%{_bindir}/dlv
|
||||
|
||||
|
||||
%if %{with check}
|
||||
%check
|
||||
%gochecks
|
||||
%endif
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc CONTRIBUTING.md CHANGELOG.md
|
||||
%doc Documentation/*
|
||||
%{_bindir}/dlv
|
||||
|
||||
|
||||
%files -n %{goname}-devel -f devel.file-list
|
||||
%license LICENSE
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Nov 2 2018 Derek Parker <deparker@redhat.com> - 1.1.0-1
|
||||
- First package for Fedora
|
29
eval-symlink-in-test.patch
Normal file
29
eval-symlink-in-test.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From de6682d29149cc8f2131d295d68a5e3d65102590 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Parker <parkerderek86@gmail.com>
|
||||
Date: Fri, 4 Jan 2019 02:03:16 -0800
|
||||
Subject: [PATCH] pkg/proc/test: Eval symlinks for test source (#1452)
|
||||
|
||||
Some build environments (such as when building RPMs) enjoy symlinking
|
||||
things. This unfortunately causes our tests to fail as we record the
|
||||
path of fixtures and use that when looking up file:line information.
|
||||
However, the debug info in the binary records the original file
|
||||
location, not the location of the symlink.
|
||||
---
|
||||
pkg/proc/test/support.go | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/pkg/proc/test/support.go b/pkg/proc/test/support.go
|
||||
index 733bad85..5f4a4127 100644
|
||||
--- a/pkg/proc/test/support.go
|
||||
+++ b/pkg/proc/test/support.go
|
||||
@@ -150,6 +150,10 @@ func BuildFixture(name string, flags BuildFlags) Fixture {
|
||||
|
||||
source, _ := filepath.Abs(path)
|
||||
source = filepath.ToSlash(source)
|
||||
+ sympath, err := filepath.EvalSymlinks(source)
|
||||
+ if err == nil {
|
||||
+ source = strings.Replace(sympath, "\\", "/", -1)
|
||||
+ }
|
||||
|
||||
fixture := Fixture{Name: name, Path: tmpfile, Source: source}
|
||||
|
142
test-fixture-vendor-to-internal.patch
Normal file
142
test-fixture-vendor-to-internal.patch
Normal file
@ -0,0 +1,142 @@
|
||||
From 73d636f7d7adf159e26f35f37aba514f647492ce Mon Sep 17 00:00:00 2001
|
||||
From: aarzilli <alessandro.arzilli@gmail.com>
|
||||
Date: Tue, 6 Nov 2018 12:11:51 +0100
|
||||
Subject: [PATCH] tests: rename _fixtures/vendor to _fixtures/internal
|
||||
|
||||
Some tests used a fake vendor directory placed inside _fixtures to
|
||||
import some support packages.
|
||||
In go.mod mode vendor directory are only supported on the root of the
|
||||
project, which breaks some of our tests.
|
||||
Since vendor directories outside the root of the project are so rare
|
||||
anyway it's possible that a future version of go will stop supporting
|
||||
it even in GOPATH mode.
|
||||
Also it was weird and unnecessary in the first place anyawy.
|
||||
---
|
||||
_fixtures/consts.go | 2 +-
|
||||
_fixtures/dotpackagesiface.go | 4 ++--
|
||||
_fixtures/{vendor => internal}/dir.io/dir.go | 0
|
||||
.../{vendor => internal}/dir.io/io.io/io.go | 0
|
||||
.../{vendor => internal}/dir0/pkg/main.go | 0
|
||||
.../dir0/renamedpackage/main.go | 0
|
||||
.../{vendor => internal}/dir1/pkg/main.go | 0
|
||||
_fixtures/pkgrenames.go | 6 ++---
|
||||
service/test/variables_test.go | 24 +++++++++----------
|
||||
9 files changed, 18 insertions(+), 18 deletions(-)
|
||||
rename _fixtures/{vendor => internal}/dir.io/dir.go (100%)
|
||||
rename _fixtures/{vendor => internal}/dir.io/io.io/io.go (100%)
|
||||
rename _fixtures/{vendor => internal}/dir0/pkg/main.go (100%)
|
||||
rename _fixtures/{vendor => internal}/dir0/renamedpackage/main.go (100%)
|
||||
rename _fixtures/{vendor => internal}/dir1/pkg/main.go (100%)
|
||||
|
||||
diff --git a/_fixtures/consts.go b/_fixtures/consts.go
|
||||
index 531a27db..54bfa8b2 100644
|
||||
--- a/_fixtures/consts.go
|
||||
+++ b/_fixtures/consts.go
|
||||
@@ -1,8 +1,8 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
- "dir0/pkg"
|
||||
"fmt"
|
||||
+ "github.com/derekparker/delve/_fixtures/internal/dir0/pkg"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
diff --git a/_fixtures/dotpackagesiface.go b/_fixtures/dotpackagesiface.go
|
||||
index 5ad147c2..5952ebeb 100644
|
||||
--- a/_fixtures/dotpackagesiface.go
|
||||
+++ b/_fixtures/dotpackagesiface.go
|
||||
@@ -1,9 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
- "dir.io"
|
||||
- "dir.io/io.io"
|
||||
"fmt"
|
||||
+ "github.com/derekparker/delve/_fixtures/internal/dir.io"
|
||||
+ "github.com/derekparker/delve/_fixtures/internal/dir.io/io.io"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
diff --git a/_fixtures/vendor/dir.io/dir.go b/_fixtures/internal/dir.io/dir.go
|
||||
similarity index 100%
|
||||
rename from _fixtures/vendor/dir.io/dir.go
|
||||
rename to _fixtures/internal/dir.io/dir.go
|
||||
diff --git a/_fixtures/vendor/dir.io/io.io/io.go b/_fixtures/internal/dir.io/io.io/io.go
|
||||
similarity index 100%
|
||||
rename from _fixtures/vendor/dir.io/io.io/io.go
|
||||
rename to _fixtures/internal/dir.io/io.io/io.go
|
||||
diff --git a/_fixtures/vendor/dir0/pkg/main.go b/_fixtures/internal/dir0/pkg/main.go
|
||||
similarity index 100%
|
||||
rename from _fixtures/vendor/dir0/pkg/main.go
|
||||
rename to _fixtures/internal/dir0/pkg/main.go
|
||||
diff --git a/_fixtures/vendor/dir0/renamedpackage/main.go b/_fixtures/internal/dir0/renamedpackage/main.go
|
||||
similarity index 100%
|
||||
rename from _fixtures/vendor/dir0/renamedpackage/main.go
|
||||
rename to _fixtures/internal/dir0/renamedpackage/main.go
|
||||
diff --git a/_fixtures/vendor/dir1/pkg/main.go b/_fixtures/internal/dir1/pkg/main.go
|
||||
similarity index 100%
|
||||
rename from _fixtures/vendor/dir1/pkg/main.go
|
||||
rename to _fixtures/internal/dir1/pkg/main.go
|
||||
diff --git a/_fixtures/pkgrenames.go b/_fixtures/pkgrenames.go
|
||||
index d315e6b7..6e0882dc 100644
|
||||
--- a/_fixtures/pkgrenames.go
|
||||
+++ b/_fixtures/pkgrenames.go
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
pkg1 "go/ast"
|
||||
pkg2 "net/http"
|
||||
|
||||
- "dir0/pkg"
|
||||
- "dir0/renamedpackage"
|
||||
- dir1pkg "dir1/pkg"
|
||||
+ "github.com/derekparker/delve/_fixtures/internal/dir0/pkg"
|
||||
+ "github.com/derekparker/delve/_fixtures/internal/dir0/renamedpackage"
|
||||
+ dir1pkg "github.com/derekparker/delve/_fixtures/internal/dir1/pkg"
|
||||
)
|
||||
|
||||
func main() {
|
||||
diff --git a/service/test/variables_test.go b/service/test/variables_test.go
|
||||
index 83fb6e7a..0e29202a 100644
|
||||
--- a/service/test/variables_test.go
|
||||
+++ b/service/test/variables_test.go
|
||||
@@ -978,20 +978,20 @@ func TestPackageRenames(t *testing.T) {
|
||||
{"amap", true, "interface {}(map[go/ast.BadExpr]net/http.Request) [{From: 2, To: 3}: *{Method: \"othermethod\", …", "", "interface {}", nil},
|
||||
|
||||
// Package name that doesn't match import path
|
||||
- {"iface3", true, `interface {}(*github.com/derekparker/delve/_fixtures/vendor/dir0/renamedpackage.SomeType) *{A: true}`, "", "interface {}", nil},
|
||||
+ {"iface3", true, `interface {}(*github.com/derekparker/delve/_fixtures/internal/dir0/renamedpackage.SomeType) *{A: true}`, "", "interface {}", nil},
|
||||
|
||||
// Interfaces to anonymous types
|
||||
{"amap2", true, "interface {}(*map[go/ast.BadExpr]net/http.Request) *[{From: 2, To: 3}: *{Method: \"othermethod\", …", "", "interface {}", nil},
|
||||
- {"dir0someType", true, "interface {}(*github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType) *{X: 3}", "", "interface {}", nil},
|
||||
- {"dir1someType", true, "interface {}(github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType) {X: 1, Y: 2}", "", "interface {}", nil},
|
||||
- {"amap3", true, "interface {}(map[github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType]github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType) [{X: 4}: {X: 5, Y: 6}, ]", "", "interface {}", nil},
|
||||
- {"anarray", true, `interface {}([2]github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType) [{X: 1},{X: 2}]`, "", "interface {}", nil},
|
||||
- {"achan", true, `interface {}(chan github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType) chan github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType 0/0`, "", "interface {}", nil},
|
||||
- {"aslice", true, `interface {}([]github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType) [{X: 3},{X: 4}]`, "", "interface {}", nil},
|
||||
- {"afunc", true, `interface {}(func(github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType, github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType)) main.main.func1`, "", "interface {}", nil},
|
||||
- {"astruct", true, `interface {}(*struct { A github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType; B github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType }) *{A: github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType {X: 1, Y: 2}, B: github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType {X: 3}}`, "", "interface {}", nil},
|
||||
- {"astruct2", true, `interface {}(*struct { github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType; X int }) *{SomeType: github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType {X: 1, Y: 2}, X: 10}`, "", "interface {}", nil},
|
||||
- {"iface2iface", true, `interface {}(*interface { AMethod(int) int; AnotherMethod(int) int }) **github.com/derekparker/delve/_fixtures/vendor/dir0/pkg.SomeType {X: 4}`, "", "interface {}", nil},
|
||||
+ {"dir0someType", true, "interface {}(*github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType) *{X: 3}", "", "interface {}", nil},
|
||||
+ {"dir1someType", true, "interface {}(github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType) {X: 1, Y: 2}", "", "interface {}", nil},
|
||||
+ {"amap3", true, "interface {}(map[github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType]github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType) [{X: 4}: {X: 5, Y: 6}, ]", "", "interface {}", nil},
|
||||
+ {"anarray", true, `interface {}([2]github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType) [{X: 1},{X: 2}]`, "", "interface {}", nil},
|
||||
+ {"achan", true, `interface {}(chan github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType) chan github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType 0/0`, "", "interface {}", nil},
|
||||
+ {"aslice", true, `interface {}([]github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType) [{X: 3},{X: 4}]`, "", "interface {}", nil},
|
||||
+ {"afunc", true, `interface {}(func(github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType, github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType)) main.main.func1`, "", "interface {}", nil},
|
||||
+ {"astruct", true, `interface {}(*struct { A github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType; B github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType }) *{A: github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType {X: 1, Y: 2}, B: github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType {X: 3}}`, "", "interface {}", nil},
|
||||
+ {"astruct2", true, `interface {}(*struct { github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType; X int }) *{SomeType: github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType {X: 1, Y: 2}, X: 10}`, "", "interface {}", nil},
|
||||
+ {"iface2iface", true, `interface {}(*interface { AMethod(int) int; AnotherMethod(int) int }) **github.com/derekparker/delve/_fixtures/internal/dir0/pkg.SomeType {X: 4}`, "", "interface {}", nil},
|
||||
|
||||
{`"dir0/pkg".A`, false, "0", "", "int", nil},
|
||||
{`"dir1/pkg".A`, false, "1", "", "int", nil},
|
||||
@@ -1010,7 +1010,7 @@ func TestPackageRenames(t *testing.T) {
|
||||
if ver.Major > 0 && !ver.AfterOrEqual(goversion.GoVersion{1, 9, -1, 0, 0, ""}) {
|
||||
// before 1.9 embedded struct field have fieldname == type
|
||||
if tc.name == "astruct2" {
|
||||
- tc.value = `interface {}(*struct { github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType; X int }) *{github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType: github.com/derekparker/delve/_fixtures/vendor/dir1/pkg.SomeType {X: 1, Y: 2}, X: 10}`
|
||||
+ tc.value = `interface {}(*struct { github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType; X int }) *{github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType: github.com/derekparker/delve/_fixtures/internal/dir1/pkg.SomeType {X: 1, Y: 2}, X: 10}`
|
||||
}
|
||||
}
|
||||
variable, err := evalVariable(p, tc.name, pnormalLoadConfig)
|
Loading…
Reference in New Issue
Block a user