Skip to content
Snippets Groups Projects
Unverified Commit c9d42e1a authored by boklm's avatar boklm
Browse files

Bug 40849: Use `go mod vendor` to fetch go dependencies

Update conjure, webtunnel, obfs4 and snowflake to use `go mod vendor` to
fetch dependencies.

We still have some go module projects, for dependencies of
projects/ncprop279/config, which doesn't have a `go.sum` file yet.
parent 9ce60dc8
Branches
Tags
1 merge request!714Draft: Bug 40849: Use `go mod vendor` to fetch go dependencies
Showing
with 49 additions and 349 deletions
......@@ -592,6 +592,21 @@ cargo_vendor-cbindgen: submodule-update
cargo_vendor-uniffi-rs: submodule-update
$(rbm) build uniffi-rs --step cargo_vendor --target nightly --target torbrowser-linux-x86_64
go_vendor-snowflake-alpha: submodule-update
$(rbm) build snowflake --step go_vendor --target alpha --target torbrowser-linux-x86_64
go_vendor-conjure-alpha: submodule-update
$(rbm) build conjure --step go_vendor --target alpha --target torbrowser-linux-x86_64
go_vendor-webtunnel-alpha: submodule-update
$(rbm) build webtunnel --step go_vendor --target alpha --target torbrowser-linux-x86_64
go_vendor-obfs4-alpha: submodule-update
$(rbm) build obfs4 --step go_vendor --target alpha --target torbrowser-linux-x86_64
go_vendor-obfs4-nightly: submodule-update
$(rbm) build obfs4 --step go_vendor --target nightly --target torbrowser-linux-x86_64
##################
# Common Targets #
......
When the dependencies of a go project ($project in the following lines)
are changing:
- the go.mod and go.sum files in $project.git are updated
- in tor-browser-build, run `make go_vendor-$project-alpha` or
`make go_vendor-$project-nightly`
- find the new file created in directory `out/$project/go_vendor` and
compute its sha256sum
- in `projects/$project/config`, update `norec/sha256sum` for `go_vendor`
in `input_files`.
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/sclevine/agouti
git_hash: e3f6c97a4077ad821daab49db8172cf9f6690faf #v3.0.0
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
build: '[% c("projects/go/var/build_go_lib") %]'
container:
use_container: 1
var:
go_lib: github.com/sclevine/agouti
input_files:
- project: container-image
- name: go
project: go
# vim: filetype=yaml sw=2
version: 1.0.4
git_url: https://github.com/andybalholm/brotli.git
git_hash: '1d750214c25205863625bb3eb8190a51b2cef26d'
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/andybalholm/brotli
input_files:
- project: container-image
- name: go
project: go
......@@ -96,8 +96,8 @@ input_files:
- project: tor-expert-bundle
name: tor-expert-bundle-aarch64
enable: '[% c("var/macos_universal") && c("var/tor-browser") %]'
target_prepend:
- macos-aarch64
target_replace:
'^torbrowser-macos.*': torbrowser-macos-aarch64
- project: fonts
name: fonts
enable: '[% ! c("var/android") %]'
......
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/sergeyfrolov/bsbuffer
git_hash: 94e85abb850729a5f54f383e8175e62931d04748
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/sergeyfrolov/bsbuffer
input_files:
- project: container-image
- name: go
project: go
......@@ -11,18 +11,11 @@ mkdir -p $distdir
export CGO_ENABLED=1
[% END -%]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/goptlib') %]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/snowflake-lib') %]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/gotapdance') %]
mkdir -p /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
mkdir -p "$GOPATH/src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure.git"
# Fix gopath location of versioned dependencies
ln -sf "$GOPATH/src/git.torproject.org/pluggable-transports/snowflake.git" "$GOPATH/src/git.torproject.org/pluggable-transports/snowflake.git/v2"
tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
cd client
go build -ldflags '-s'
......
......@@ -2,20 +2,23 @@
version: '[% c("abbrev") %]'
git_url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure.git
git_hash: b7d485734c3ab09ef3da818abb4b39ec27ef3a73
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
steps:
build:
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
input_files:
- project: container-image
- name: go
project: go
- name: goptlib
project: goptlib
- name: gotapdance
project: gotapdance
- name: snowflake-lib
project: snowflake-lib
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
enable: '[% c("var/android") %]'
- name: go_vendor
pkg_type: go_vendor
project: conjure
norec:
sha256sum: 2b403d6edf075777003bf2194a43fb178a28a4eaa7d23ec8f104563d9bbd7e53
target_replace:
'^torbrowser-.*': 'torbrowser-linux-x86_64'
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://gitlab.com/yawning/edwards25519-extra.git
git_hash: 2f91fcc9fbdb888f3c795849b6777940135559b7
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: gitlab.com/yawning/edwards25519-extra.git
go_lib_deps:
- goxcrypto
- edwards25519
go_lib_install:
- gitlab.com/yawning/edwards25519-extra.git/elligator2
- gitlab.com/yawning/edwards25519-extra.git/h2c
- gitlab.com/yawning/edwards25519-extra.git/vrf
input_files:
- project: container-image
- name: go
project: go
- name: goxcrypto
project: goxcrypto
- name: edwards25519
project: edwards25519
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
enable: '[% c("var/android") %]'
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/FiloSottile/edwards25519.git
git_hash: 390f27c3be2014e4912ce88c6a1fff52ec60428b
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: filippo.io/edwards25519
input_files:
- project: container-image
- name: go
project: go
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/google/go-cmp
git_hash: 8fa37b4dd109f12e42b131e485268768f18bcbf8 #v0.5.5
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/google/go-cmp
go_lib_deps:
- goxxerrors
build_go_lib_pre: |
cd "cmp"
input_files:
- project: container-image
- name: go
project: go
- name: goxxerrors
project: goxxerrors
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/pmezard/go-difflib
git_hash: 792786c7400a136282c1664665ae0a8db921c6c2 # v1.0.0
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/pmezard/go-difflib
go_lib_install:
- github.com/pmezard/go-difflib/difflib
input_files:
- project: container-image
- name: go
project: go
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/davecgh/go-spew
git_hash: 8991bc29aa16c548c550c7ff78260e27b9ab7c73 # v1.1.1
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/davecgh/go-spew
go_lib_install:
- github.com/davecgh/go-spew/spew
input_files:
- project: container-image
- name: go
project: go
......@@ -17,10 +17,6 @@ var:
export GOOS=[% c("var/GOOS") %]
export GOARCH=[% c("var/GOARCH") %]
[% END -%]
# Run in GOPATH mode: https://golang.org/cmd/go/#hdr-Module_support. (see:
# #32027)
export GO111MODULE=off
export GOPATH=/var/tmp/dist/gopath
export PATH=/var/tmp/dist/go/bin:/var/tmp/dist/gopath/bin:"$PATH"
[% IF c("var/linux") -%]
export CGO_LDFLAGS_ALLOW="-z|noexecstack"
......@@ -40,6 +36,10 @@ var:
#!/bin/bash
[% c("var/set_default_env") -%]
[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
# Run in GOPATH mode: https://golang.org/cmd/go/#hdr-Module_support. (see:
# #32027)
export GO111MODULE=off
export GOPATH=/var/tmp/dist/gopath
distdir=/var/tmp/dist/[% project %]
mkdir -p /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
......
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://gopkg.in/check.v1
git_hash: 41f04d3bba152ddec2103e299fed053415705330 # v1.0.0
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: gopkg.in/check.v1
go_lib_deps:
- pretty
input_files:
- project: container-image
- name: go
project: go
- name: pretty
project: pretty
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/pkg/errors
git_hash: 614d223910a179a466c1767a985424175c39b465 # v0.9.1
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/pkg/errors
input_files:
- project: container-image
- name: go
project: go
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/golang/mock
git_hash: 51421b967af1f557f93a59e0057aaf15ca02e29c # v1.2.0
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/golang/mock
go_lib_install:
- github.com/golang/mock/gomock
input_files:
- project: container-image
- name: go
project: go
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/golang/protobuf
git_hash: ae97035608a719c7a1c1c41bed0ae0744bdb0c6f #v1.5.2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/golang/protobuf
go_lib_install:
- github.com/golang/protobuf/proto
go_lib_deps:
- protobuf
input_files:
- project: container-image
- name: go
project: go
- name: protobuf
project: protobuf
# vim: filetype=yaml sw=2
version: v1.1.0
git_url: https://git.torproject.org/pluggable-transports/goptlib.git
git_hash: '[% c("version") %]'
tag_gpg_id: 1
gpg_keyring: goptlib.gpg
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: git.torproject.org/pluggable-transports/goptlib.git
targets:
nightly:
version: main
tag_gpg_id: 0
android:
var:
build_go_lib_pre: |
[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
input_files:
- project: container-image
- name: go
project: go
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
enable: '[% c("var/android") %]'
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/refraction-networking/gotapdance
git_hash: 14162bd2967839d5d873645881f4a4761fb7bb48 #v1.3.0
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
container:
use_container: 1
build: '[% c("projects/go/var/build_go_lib") %]'
var:
go_lib: github.com/refraction-networking/gotapdance
go_lib_deps:
- bsbuffer
- goprotobuf
- goptlib
- goxcrypto
- goxnet
- logrus
- obfs4-lib
- refraction-utls
- weightedrand
go_lib_install:
- github.com/refraction-networking/gotapdance/tapdance
input_files:
- project: container-image
- name: go
project: go
- name: bsbuffer
project: bsbuffer
- name: goprotobuf
project: goprotobuf
- name: goptlib
project: goptlib
- name: goxcrypto
project: goxcrypto
- name: goxnet
project: goxnet
- name: logrus
project: logrus
- name: obfs4-lib
project: obfs4-lib
- name: refraction-utls
project: refraction-utls
- name: weightedrand
project: weightedrand
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment