Skip to content

Commit

Permalink
crypto/secp256k1: add workaround for go mod vendor (ethereum#21735)
Browse files Browse the repository at this point in the history
Go won't vendor C files if there are no Go files present in the directory.
Workaround is to add dummy Go files.

Fixes: ethereum#20232
  • Loading branch information
steveruckdashel authored and enriquefynn committed Feb 15, 2021
1 parent 58bb949 commit 9d27270
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 0 deletions.
20 changes: 20 additions & 0 deletions crypto/secp256k1/dummy.go
@@ -0,0 +1,20 @@
// +build dummy

// This file is part of a workaround for `go mod vendor` which won't vendor
// C files if there's no Go file in the same directory.
// This would prevent the crypto/secp256k1/libsecp256k1/include/secp256k1.h file to be vendored.
//
// This Go file imports the c directory where there is another dummy.go file which
// is the second part of this workaround.
//
// These two files combined make it so `go mod vendor` behaves correctly.
//
// See this issue for reference: https://github.com/golang/go/issues/26366

package secp256k1

import (
_ "github.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/include"
_ "github.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src"
_ "github.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src/modules/recovery"
)
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/contrib/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package contrib
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package libsecp256k1
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/include/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package include
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/src/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package src
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/src/modules/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package module
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/src/modules/ecdh/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package ecdh
7 changes: 7 additions & 0 deletions crypto/secp256k1/libsecp256k1/src/modules/recovery/dummy.go
@@ -0,0 +1,7 @@
// +build dummy

// Package c contains only a C file.
//
// This Go file is part of a workaround for `go mod vendor`.
// Please see the file crypto/secp256k1/dummy.go for more information.
package recovery

0 comments on commit 9d27270

Please sign in to comment.