Update Flatpak with full golang sources again

This commit is contained in:
Miguel Jacq 2025-02-07 11:42:49 +11:00
parent 11262cbcf2
commit dd3d4c7f11
No known key found for this signature in database
GPG Key ID: 59B3F0C24135C6A9
10 changed files with 1177 additions and 322 deletions

@ -94,17 +94,36 @@ With every commit to the `main` branch, Snapcraft's CI should trigger builds. Ma
In `flatpak/org.onionshare.OnionShare.yaml`:
- [ ] Update `tor` and `libevent`
- [ ] Update `obfs4proxy`, `meek-client`, and `snowflake-client` dependencies, if necessary using the script `golang-to-requirements.py` in the `flatpak` folder, like this:
```sh
cd flatpak
./golang-to-requirements.py --url gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git --name snowflake --version v2.10.1 --folder client
./golang-to-requirements.py --url gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek.git --name meek-client --version v0.38.0 --folder meek-client
./golang-to-requirements.py --url gitlab.com/yawning/obfs4.git --name obfs4proxy --version obfs4proxy-0.0.14
- [ ] Update `obfs4proxy`, `meek-client`, and `snowflake-client` dependencies. To do this, clone the latest tagged release of the following repositories, into a temp directory:
```
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek.git
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
https://gitlab.com/yawning/obfs4.git
```
This will take a long time as it clones each dependency (particularly that of the snowflake-client which has a lot of dependencies).
Enter into each directory (having checked out the correct tag) and run:
```sh
go run github.com/dennwc/flatpak-go-mod@latest .
```
This will generate several files:
```
go.mod.yml
modules.txt
```
Move the `go.mod.yml` into the respective `flatpak/snowflake`, `flatpak/obfs4proxy` and `flatpak/meek-client` folders.
Then edit the go.mod.yml in each one and edit the 'path' attribute of the first entry that it has the subfolder set (below example is just the `obfs4proxy/go.mod.yml`, but you should do the same for the other two):
```
- dest: vendor
path: obfs4proxy/modules.txt
type: file
```
Merge the output of each of these commands into the Flatpak manifest.
- [ ] Update the Python dependencies. This is super hacky. You need to use both the poetry and pip parts of [this tool](https://github.com/flatpak/flatpak-builder-tools), but the version from [this PR](https://github.com/flatpak/flatpak-builder-tools/pull/353):
```sh
# get onionshare-cli dependencies

@ -1,272 +0,0 @@
#!/usr/bin/env python3
# coding: utf-8
import argparse
import subprocess
import sys
import json
import os
import re
import tempfile
import yaml
import requests
from bs4 import BeautifulSoup
def parse_args():
"""
Parse arguments to the script
"""
parser = argparse.ArgumentParser(description="Extract dependencies for Golang")
parser.add_argument("--url", dest="url", required=True, help="Pass repo URL")
parser.add_argument(
"--name", dest="name", required=True, help="Pass repo short name"
)
parser.add_argument("--version", default="", dest="version", help="Pass tag name")
parser.add_argument(
"--folder", default="", dest="folder", help="Pass optional folder name"
)
return parser.parse_args()
def extract_commit_id(module_version):
# Regex to match formats like: v0.0.0-20190819201941-24fa4b261c55
complex_format_regex = re.compile(
r"v\d+\.\d+\.\d+-\d{14}-(?P<commit>[a-fA-F0-9]{12,40})"
)
match = complex_format_regex.search(module_version)
if match:
return match.group("commit")
# If the version is just a simple version like v1.4.0 or v0.13.0, return None
return None
def get_commit_id_from_git(
git_url,
version=None,
short_commit_id=None,
):
# If short_commit_id is provided, simply expand it
if short_commit_id:
print(
f"✨ Cloning {git_url} to find long commit ID version of {short_commit_id}"
)
with tempfile.TemporaryDirectory() as tmp_dir:
subprocess.run(["git", "clone", "--bare", git_url, tmp_dir], check=True)
result = subprocess.run(
["git", "rev-parse", short_commit_id],
cwd=tmp_dir,
check=True,
capture_output=True,
text=True,
)
commit_id = result.stdout.strip()
print(f"✨ Found commit ID: {commit_id}")
return commit_id
# If it's a GitHub URL, use the GitHub API
if "github.com" in git_url:
repo_parts = git_url.replace("https://github.com/", "").split("/")
if len(repo_parts) == 2:
owner, repo = repo_parts
tag_url = (
f"https://api.github.com/repos/{owner}/{repo}/git/refs/tags/{version}"
)
response = requests.get(tag_url)
if response.status_code == 200:
json_data = response.json()
commit_id = json_data["object"]["sha"]
print(f"✨ Used GitHub API to find commit ID: {commit_id}")
return commit_id
# If it's a GitLab URL, use the GitLab API
elif "gitlab.com" in git_url:
repo_parts = (
git_url.replace("https://gitlab.com/", "").rstrip(".git").split("/")
)
if len(repo_parts) >= 2:
tag_url = f"https://gitlab.com/api/v4/projects/{'%2F'.join(repo_parts)}/repository/tags/{version}"
response = requests.get(tag_url)
if response.status_code == 200:
json_data = response.json()
commit_id = json_data["commit"]["id"]
print(f"✨ Used GitHub API to find commit ID: {commit_id}")
return commit_id
# Otherwise, clone the git repo to find the commit id
with tempfile.TemporaryDirectory() as tmp_dir:
try:
if version:
print(f"✨ Cloning {git_url}@{version} to find commit ID")
subprocess.run(
["git", "clone", "--bare", "-b", version, git_url, tmp_dir],
check=True,
)
else:
print(f"✨ Cloning {git_url} to find commit ID")
subprocess.run(["git", "clone", "--bare", git_url, tmp_dir], check=True)
except subprocess.CalledProcessError:
# If cloning with a specific tag fails, fall back to default branch
if version:
print(
f"✨ Tag {version} not found. Cloning {git_url} default branch..."
)
subprocess.run(["git", "clone", "--bare", git_url, tmp_dir], check=True)
try:
result = subprocess.run(
["git", "rev-parse", "HEAD"],
cwd=tmp_dir,
check=True,
capture_output=True,
text=True,
)
commit_id = result.stdout.strip()
print(f"✨ Found commit ID: {commit_id}")
return commit_id
except subprocess.CalledProcessError:
return None
def get_module_info(module_name):
result = subprocess.run(
["go", "list", "-m", "-json", module_name],
check=True,
capture_output=True,
text=True,
)
return json.loads(result.stdout)
def get_git_url(module_name):
# Remove the version suffix, if present
module_name = re.sub(r"/v\d+$", "", module_name)
# Remove the subdirectory, if present (e.g. github.com/foo/bar/subdir -> github.com/foo/bar)
if "gitlab.com" in module_name or "github.com" in module_name:
url_parts = module_name.split("/")
if len(url_parts) > 3:
module_name = "/".join(url_parts[:3])
if "gitlab.com" in module_name:
return f"https://gitlab.com/{module_name.replace('gitlab.com/', '')}"
elif "github.com" in module_name:
return f"https://github.com/{module_name.replace('github.com/', '')}"
elif "git.torproject.org" in module_name:
return f"https://{module_name}"
else:
response = requests.get(f"https://{module_name}/?go-get=1")
if response.status_code != 200:
return None
soup = BeautifulSoup(response.content, "html.parser")
meta_tag = soup.find("meta", {"name": "go-import"})
if meta_tag:
url = meta_tag["content"].split()[2]
r = requests.get(url, allow_redirects=True)
if r.history:
return r.url
else:
return url
return None
def main(repo, repo_name, version, folder):
"""Flatpak Go Generator"""
with tempfile.TemporaryDirectory() as temp_dir:
os.chdir(temp_dir)
try:
if not folder:
folder = "."
print("✨ Cloning the target repository")
subprocess.run(
["git", "clone", f"https://{repo}", f"src/{repo_name}"], check=True
)
os.chdir(f"src/{repo_name}/{folder}")
if version:
print(f"✨ Checking out version {version}")
subprocess.run(["git", "checkout", version], check=True)
except subprocess.CalledProcessError:
print(f"✨ Error fetching {sys.argv[1]}")
sys.exit(1)
result = subprocess.run(
["go", "list", "-m", "all"],
check=True,
capture_output=True,
text=True,
cwd=f"{temp_dir}/src/{repo_name}/{folder}",
)
modules = result.stdout.strip().split("\n")
modules = modules[1:] # Skip the first module, which is the current module
print(f"✨ Found {len(modules)} dependencies")
sources = []
for module in modules:
module_name, module_version = module.split(" ", 1)
print(f"✨ Module: {module}")
short_commit_id = extract_commit_id(module_version)
if short_commit_id:
print(f"✨ Found short_commit_id: {short_commit_id}")
info = get_module_info(module_name)
path = info.get("Path")
version = info.get("Version")
if version.endswith("+incompatible"):
version = version[:-13]
if not version:
continue
git_url = get_git_url(module_name)
if not git_url:
git_url = f"https://{module_name}.git"
print(f"✨ Git URL: {git_url}")
commit_id = get_commit_id_from_git(git_url, version, short_commit_id)
if not commit_id:
print(
f"✨ Error: Could not retrieve commit ID for {module_name}@{version}."
)
continue
sources.append(
{
"type": "git",
"url": git_url,
"commit": commit_id,
"dest": f"src/{path.replace('.', '/')}",
}
)
yaml_data = {
"name": repo_name,
"buildsystem": "simple",
"build-options": {"env": {"GOBIN": "/app/bin/"}},
"build-commands": [
f". /usr/lib/sdk/golang/enable.sh; export GOPATH=$PWD; export GO111MODULE=off; go install {repo}/{os.path.basename(repo)}"
],
"sources": sources,
}
print("✨ 🌟 ✨")
print(yaml.dump(yaml_data))
if __name__ == "__main__":
args = parse_args()
main(args.url, args.name, args.version, args.folder)

@ -0,0 +1,54 @@
# Workaround for Go modules generated by github.com/dennwc/flatpak-go-mod
- dest: vendor
path: meek-client/modules.txt
type: file
- dest: vendor/git.torproject.org/pluggable-transports/goptlib.git
sha256: f6769c4813dedf933071289bfd9381aa5eb3a012b3a32d1da02aa9bebd3a3b5b
strip-components: 3
type: archive
url: https://proxy.golang.org/git.torproject.org/pluggable-transports/goptlib.git/@v/v1.1.0.zip
- dest: vendor/github.com/andybalholm/brotli
sha256: ebe53f2856e100e273aae3c5a368d114ed57f5183bb03e70708d6c29041ad735
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/andybalholm/brotli/@v/v1.0.4.zip
- dest: vendor/github.com/klauspost/compress
sha256: c91cc38ea41996aff5e132666674c63c65f6c7d8af1b3eac4a142b323bf96779
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/klauspost/compress/@v/v1.15.9.zip
- dest: vendor/github.com/refraction-networking/utls
sha256: 8073263fa873269b94e2458d716c100e8d4ad21fd603b078bb7b713a5f95bcb5
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/refraction-networking/utls/@v/v1.1.5.zip
- dest: vendor/golang.org/x/crypto
sha256: 3db244bdc1c8848b910e6e1ebb449aa78b546bd9cf699c61bf8b8a1fb25c5065
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20220829220503-c86fa9a7ed90.zip
- dest: vendor/golang.org/x/net
sha256: afb1b6156dd401f47fb17a0ebd0e2c858ba3e614ea8d8485daccceca76af8f60
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/net/@v/v0.0.0-20220909164309-bea034e7d591.zip
- dest: vendor/golang.org/x/sys
sha256: 163d362fb98e89d17d4ef6292941c65c2c75432b1e200379b721f4a80c15f3e2
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/sys/@v/v0.0.0-20220728004956-3c1f35247d10.zip
- dest: vendor/golang.org/x/term
sha256: 3adf713afa49fe26580ffe4adb1f4fb2f4921c945301aa5a9fb6d34031fa30cd
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/term/@v/v0.0.0-20210927222741-03fcf44c2211.zip
- dest: vendor/golang.org/x/text
sha256: e1a9115e61a38da8bdc893d0ba83b65f89cc1114f152a98eb572c5ea6551e8d4
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/text/@v/v0.3.7.zip
- dest: vendor/golang.org/x/tools
sha256: 6673fe06662fcbee5f246f12af8ed860328bf08fd016fd490987cd76acb1b4fe
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/tools/@v/v0.0.0-20180917221912-90fa682c2a6e.zip

@ -0,0 +1,45 @@
# git.torproject.org/pluggable-transports/goptlib.git v1.1.0
git.torproject.org/pluggable-transports/goptlib.git
# github.com/andybalholm/brotli v1.0.4
github.com/andybalholm/brotli
# github.com/klauspost/compress v1.15.9
github.com/klauspost/compress
github.com/klauspost/compress/fse
github.com/klauspost/compress/huff0
github.com/klauspost/compress/internal/cpuinfo
github.com/klauspost/compress/internal/snapref
github.com/klauspost/compress/zstd
github.com/klauspost/compress/zstd/internal/xxhash
# github.com/refraction-networking/utls v1.1.5
github.com/refraction-networking/utls
github.com/refraction-networking/utls/cpu
# golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90
golang.org/x/crypto/acme
golang.org/x/crypto/acme/autocert
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/cryptobyte/asn1
golang.org/x/crypto/curve25519
golang.org/x/crypto/curve25519/internal/field
golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/alias
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/sha3
# golang.org/x/net v0.0.0-20220909164309-bea034e7d591
golang.org/x/net/http/httpguts
golang.org/x/net/http2
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/net/internal/socks
golang.org/x/net/proxy
# golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10
golang.org/x/sys/cpu
golang.org/x/sys/internal/unsafeheader
golang.org/x/sys/windows
golang.org/x/sys/windows/registry
# golang.org/x/text v0.3.7
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm

@ -0,0 +1,54 @@
# Workaround for Go modules generated by github.com/dennwc/flatpak-go-mod
- dest: vendor
path: obfs4proxy/modules.txt
type: file
- dest: vendor/filippo.io/edwards25519
sha256: b08ab9f86a2f0688a6b8b49a03ac5b52f53f87747596ad10dc20cdd668d15bc4
strip-components: 2
type: archive
url: https://proxy.golang.org/filippo.io/edwards25519/@v/v1.0.0-rc.1.0.20210721174708-390f27c3be20.zip
- dest: vendor/git.torproject.org/pluggable-transports/goptlib.git
sha256: 47b1e56ef80c5a6966eb260f95bc4729ccea95834926866bccfc971d78efb855
strip-components: 3
type: archive
url: https://proxy.golang.org/git.torproject.org/pluggable-transports/goptlib.git/@v/v1.0.0.zip
- dest: vendor/github.com/dchest/siphash
sha256: 877a468e533e28c777c59b3dfea175b38a1f0bc1f8551e3a9e1739b1821c7e3e
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/dchest/siphash/@v/v1.2.1.zip
- dest: vendor/gitlab.com/yawning/edwards25519-extra.git
sha256: b7c70110c5c48f09e8a4272f6d845306f62e9b0be8ab55a07101d579b9513224
strip-components: 3
type: archive
url: https://proxy.golang.org/gitlab.com/yawning/edwards25519-extra.git/@v/v0.0.0-20211229043746-2f91fcc9fbdb.zip
- dest: vendor/golang.org/x/crypto
sha256: b2b28fcf49bf385183f0369851145ddd93989f68d9e675db536a3dd482ca6d76
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20210711020723-a769d52b0f97.zip
- dest: vendor/golang.org/x/net
sha256: 17ae555c0bec70b583d84ec7a099db3fdc5b3b688cb2814f8c388d174e7ada15
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/net/@v/v0.0.0-20210226172049-e18ecbb05110.zip
- dest: vendor/golang.org/x/sys
sha256: 0d25c11d65a4ac84a6e2c3bd56a6afeb1da3923d2752a5aa59b7e99a94359fcb
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/sys/@v/v0.0.0-20210615035016-665e8c7367d1.zip
- dest: vendor/golang.org/x/term
sha256: 475a86f11dd148b474ce405c5dbdd5f6bcae056c3e44e52445a45926dd69a552
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/term/@v/v0.0.0-20201126162022-7de9c90e9dd1.zip
- dest: vendor/golang.org/x/text
sha256: 8a896da346baf94ab4f24b0e396df0b79393c93aa05c50ef07cddd561a1ff8d7
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/text/@v/v0.3.3.zip
- dest: vendor/golang.org/x/tools
sha256: 6673fe06662fcbee5f246f12af8ed860328bf08fd016fd490987cd76acb1b4fe
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/tools/@v/v0.0.0-20180917221912-90fa682c2a6e.zip

@ -0,0 +1,29 @@
# filippo.io/edwards25519 v1.0.0-rc.1.0.20210721174708-390f27c3be20
## explicit
filippo.io/edwards25519
filippo.io/edwards25519/field
# git.torproject.org/pluggable-transports/goptlib.git v1.0.0
## explicit
git.torproject.org/pluggable-transports/goptlib.git
# github.com/dchest/siphash v1.2.1
## explicit
github.com/dchest/siphash
# gitlab.com/yawning/edwards25519-extra.git v0.0.0-20211229043746-2f91fcc9fbdb
## explicit
gitlab.com/yawning/edwards25519-extra.git/elligator2
gitlab.com/yawning/edwards25519-extra.git/internal/montgomery
# golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
## explicit
golang.org/x/crypto/curve25519
golang.org/x/crypto/curve25519/internal/field
golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/subtle
golang.org/x/crypto/nacl/secretbox
golang.org/x/crypto/poly1305
golang.org/x/crypto/salsa20/salsa
# golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
## explicit
golang.org/x/net/internal/socks
golang.org/x/net/proxy
# golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
golang.org/x/sys/cpu

@ -46,6 +46,51 @@ modules:
- type: file
url: https://files.pythonhosted.org/packages/77/79/204d6d8d9892f36d46b40815aab770620191c141ab98851eb708683588f9/shiboken6-6.8.2-cp39-abi3-manylinux_2_28_x86_64.whl
sha256: 924c23bed7c0b6ff8a308f4e12e5a9681f720c22d1be339cac01591feb7ebb32
- name: snowflake-client
buildsystem: simple
build-options:
append-path: /usr/lib/sdk/golang/bin
env:
GOBIN: "/app/bin/"
GO11MODULE: on
GOROOT: /usr/lib/sdk/golang
build-commands:
- ". /usr/lib/sdk/golang/enable.sh && go build -mod=vendor -o /app/bin/snowflake-client ./client"
sources:
- type: git
url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
tag: v2.10.1
- snowflake/go.mod.yml
- name: obfs4proxy
buildsystem: simple
build-options:
append-path: /usr/lib/sdk/golang/bin
env:
GOBIN: "/app/bin/"
GO11MODULE: on
GOROOT: /usr/lib/sdk/golang
build-commands:
- ". /usr/lib/sdk/golang/enable.sh && go build -mod=vendor -o /app/bin/obfs4proxy ./obfs4proxy"
sources:
- type: git
url: https://gitlab.com/yawning/obfs4.git
tag: obfs4proxy-0.0.14
- obfs4proxy/go.mod.yml
- name: meek-client
buildsystem: simple
build-options:
append-path: /usr/lib/sdk/golang/bin
env:
GOBIN: "/app/bin/"
GO11MODULE: on
GOROOT: /usr/lib/sdk/golang
build-commands:
- ". /usr/lib/sdk/golang/enable.sh && go build -mod=vendor -o /app/bin/meek-client ./meek-client"
sources:
- type: git
url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek.git
tag: v0.38.0
- meek-client/go.mod.yml
- name: tor
buildsystem: autotools
sources:
@ -59,48 +104,6 @@ modules:
- type: archive
url: https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
sha256: 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
- name: meek-client
buildsystem: simple
build-options:
build-args:
- --share=network
build-commands:
- ". /usr/lib/sdk/golang/enable.sh; export GOPATH=$PWD; export GO111MODULE=on; cd desktop && ./scripts/build-pt-meek.sh && mv onionshare/resources/tor/meek-client /app/bin/meek-client"
# Some go deps end up with dirs chmod 555 and files chmod 444. This breaks stripping in Flatpak builds, so fix perms.
# See https://github.com/flatpak/flatpak/issues/469
- "find $FLATPAK_BUILDER_BUILDDIR -type d -perm 555 -print0 | xargs -0 -r chmod 755"
- "find $FLATPAK_BUILDER_BUILDDIR -type f -perm 444 -print0 | xargs -0 -r chmod 644"
sources:
- type: dir
path: ..
- name: snowflake-client
buildsystem: simple
build-options:
build-args:
- --share=network
build-commands:
- ". /usr/lib/sdk/golang/enable.sh; export GOPATH=$PWD; export GO111MODULE=on; cd desktop && ./scripts/build-pt-snowflake.sh && mv onionshare/resources/tor/snowflake-client /app/bin/snowflake-client"
# Some go deps end up with dirs chmod 555 and files chmod 444. This breaks stripping in Flatpak builds, so fix perms.
# See https://github.com/flatpak/flatpak/issues/469
- "find $FLATPAK_BUILDER_BUILDDIR -type d -perm 555 -print0 | xargs -0 -r chmod 755"
- "find $FLATPAK_BUILDER_BUILDDIR -type f -perm 444 -print0 | xargs -0 -r chmod 644"
sources:
- type: dir
path: ..
- name: obfs4proxy
buildsystem: simple
build-options:
build-args:
- --share=network
build-commands:
- ". /usr/lib/sdk/golang/enable.sh; export GOPATH=$PWD; export GO111MODULE=on; cd desktop && ./scripts/build-pt-obfs4proxy.sh && mv onionshare/resources/tor/obfs4proxy /app/bin/obfs4proxy"
# Some go deps end up with dirs chmod 555 and files chmod 444. This breaks stripping in Flatpak builds, so fix perms.
# See https://github.com/flatpak/flatpak/issues/469
- "find $FLATPAK_BUILDER_BUILDDIR -type d -perm 555 -print0 | xargs -0 -r chmod 755"
- "find $FLATPAK_BUILDER_BUILDDIR -type f -perm 444 -print0 | xargs -0 -r chmod 644"
sources:
- type: dir
path: ..
- name: onionshare
buildsystem: simple
ensure-writable:

@ -0,0 +1,404 @@
# Workaround for Go modules generated by github.com/dennwc/flatpak-go-mod
- dest: vendor
path: snowflake/modules.txt
type: file
- dest: vendor/github.com/aws/aws-sdk-go-v2
sha256: 0d233562c07ba86d839ae695a1a7c1f7bf05c87085e2a47975fdc3fcaa70e653
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/@v/v1.32.2.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/config
sha256: 18483403b7d6a11e6fd60d42a049243412c8974889e081b9cc980bd77a9b5451
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/config/@v/v1.28.0.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/credentials
sha256: 3c6222f4f4a763a64fb746532e940918f69a2d8952d284482813f6d4123fa1ff
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/credentials/@v/v1.17.41.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/sqs
sha256: b0414a0ea36f66518899887f30616e42d6516d662fcef862d335ac6ba2278082
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/sqs/@v/v1.36.2.zip
- dest: vendor/github.com/golang/mock
sha256: fa25916b546f90da49418f436e3a61e4c5dae898cf3c82b0007b5a6fab74261b
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/golang/mock/@v/v1.6.0.zip
- dest: vendor/github.com/gorilla/websocket
sha256: dbbd31dd0f08548c5dc43e4c2f12bbba66abff5252b224b1cd06afbb72783a76
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/gorilla/websocket/@v/v1.5.3.zip
- dest: vendor/github.com/miekg/dns
sha256: 468b7ffd2c69396ba98f1266d43f75251aaf8c6371b059c345611d63f4c5cd62
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/miekg/dns/@v/v1.1.62.zip
- dest: vendor/github.com/pion/ice/v2
sha256: 7eb5640d9d278455051990d2fe7ef5c1666fc6e997876c2c4b2dbe62b83d1e22
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/ice/v2/@v/v2.3.36.zip
- dest: vendor/github.com/pion/sdp/v3
sha256: b26e89258a85e35946ea7f7ad1fb5ee0e22790c9b0d6d9e933d023a52ab0b047
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/sdp/v3/@v/v3.0.9.zip
- dest: vendor/github.com/pion/stun/v3
sha256: f3af9bbf81a3bb44e50f5282c1a833db11da82639fdd0c55d3a2afbe401c97b1
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/stun/v3/@v/v3.0.0.zip
- dest: vendor/github.com/pion/transport/v2
sha256: f1cd09e78b488a556c59df8793b66c4ab91340b5914c5537a3c116b29898d2b3
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/transport/v2/@v/v2.2.10.zip
- dest: vendor/github.com/pion/webrtc/v3
sha256: 8a2a45dc08d645625c0130c29ab8bc13c985d24b29da557597bbf62ef79a7393
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/webrtc/v3/@v/v3.3.4.zip
- dest: vendor/github.com/prometheus/client_golang
sha256: b76de10864f49c87a347b9a3e6fe606c1f93ed091de7d0d1d17a5967a60f5ce2
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/prometheus/client_golang/@v/v1.20.5.zip
- dest: vendor/github.com/realclientip/realclientip-go
sha256: 8e028a40382ccce76443a2a3f68d2cc88c235a7161fedd85ce38a920f52b3a24
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/realclientip/realclientip-go/@v/v1.0.0.zip
- dest: vendor/github.com/refraction-networking/utls
sha256: 57d69c8ac0a4f4b7d961adfadb06da5445db39233fbf535c1e789f2a8b6da72b
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/refraction-networking/utls/@v/v1.6.7.zip
- dest: vendor/github.com/smartystreets/goconvey
sha256: 386d6cbaf30c8d7fd4daad50639408e80cb78cb994eb76aafc9f9b8cb18689e7
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/smartystreets/goconvey/@v/v1.8.1.zip
- dest: vendor/github.com/stretchr/testify
sha256: ee5d4f73cb689b1b5432c6908a189f9fbdb172507c49c32dbdf79b239ea9b8e0
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/stretchr/testify/@v/v1.9.0.zip
- dest: vendor/github.com/txthinking/socks5
sha256: 4a0d0597a61add7b2bea0424048fc970b45e58a8004e660797b6e210c5ef65f2
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/txthinking/socks5/@v/v0.0.0-20230325130024-4230056ae301.zip
- dest: vendor/github.com/xtaci/kcp-go/v5
sha256: 779d52311fd268d7e3fe68003104f1cb53df84dc898eaac7e498ea0172c05b59
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/xtaci/kcp-go/v5/@v/v5.6.8.zip
- dest: vendor/github.com/xtaci/smux
sha256: 7990b2c5eae471252933cf53165409a06095c6644ae079c60e7cdf630d454c77
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/xtaci/smux/@v/v1.5.31.zip
- dest: vendor/gitlab.torproject.org/tpo/anti-censorship/geoip
sha256: 2e6d2cf1f0fe29d135a24e1277fc11bbdd954a34c3c333739096fac0629fda14
strip-components: 4
type: archive
url: https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/geoip/@v/v0.0.0-20210928150955-7ce4b3d98d01.zip
- dest: vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib
sha256: 0546f91f6d06aaacfe5a7ffe22ca92328b2777ce505f035f6aec8b729810d6ec
strip-components: 5
type: archive
url: https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/@v/v1.5.0.zip
- dest: vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil
sha256: fbb685275a29319744190df6c9f04a5cba8be5c70f020915026ed1d6f75d085a
strip-components: 5
type: archive
url: https://proxy.golang.org/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil/@v/v0.0.0-20240710081135-6c4d8ed41027.zip
- dest: vendor/golang.org/x/crypto
sha256: 959acbe3514430c2c009dc93f27e41ddad4fee178a4c680c753bc09b5d2e77d0
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/crypto/@v/v0.28.0.zip
- dest: vendor/golang.org/x/net
sha256: c357b779cdc08d0952f7bad4c45ce84223b7c6005d775822a17901ae8f65bbba
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/net/@v/v0.30.0.zip
- dest: vendor/golang.org/x/sys
sha256: f44842acff792af010dcb5a24308b72272ebd57c74e00d5f530c9e5d55b86979
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/sys/@v/v0.26.0.zip
- dest: vendor/github.com/andybalholm/brotli
sha256: 7406a3da42b69d91795fa3cbdbda47b4609352e1a292d5cf890ed6e7a05ab690
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/andybalholm/brotli/@v/v1.0.6.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds
sha256: b08a42471a7dbe272bedb9661b4ff5b68b0bb953e0c008c678aa914165665687
strip-components: 6
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/@v/v1.16.17.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/internal/configsources
sha256: 4057dad10c35a0d8c41950d432640308f92681fce5a87b89c2c7c5f87a16bbd0
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/internal/configsources/@v/v1.3.21.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2
sha256: d827da79b3ac904454b6f30a759a5c434a36b0051b285b2182b0a85f6fa69d05
strip-components: 6
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/@v/v2.6.21.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/internal/ini
sha256: 30ceb160c10eee87c002f89ce5a89100463ec2935a980a3652fc53fff4efe21a
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/internal/ini/@v/v1.8.1.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding
sha256: 065ea2eef5c6392f30252ad9e3f64a87d872ff515152ddd82ac55702ad356543
strip-components: 6
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/@v/v1.12.0.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url
sha256: bfd9de7b0e4fcd820d67e969b403ff71e14a599e3265d54e96bf1bf7bf22ce7c
strip-components: 6
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/@v/v1.12.2.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/sso
sha256: e60ec73403bb18b3d33962658f2dd044a55ef6baded17afaae35e5abf7b9963d
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/sso/@v/v1.24.2.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc
sha256: 313550f7ad22c812068c53ae42db7cf084b90801c6f3b81cbffb576365069a88
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/ssooidc/@v/v1.28.2.zip
- dest: vendor/github.com/aws/aws-sdk-go-v2/service/sts
sha256: 0c8ddea2ea8a30b1aea4b663bd92b25f406cec032bf136007823a28c82d5abfa
strip-components: 5
type: archive
url: https://proxy.golang.org/github.com/aws/aws-sdk-go-v2/service/sts/@v/v1.32.2.zip
- dest: vendor/github.com/aws/smithy-go
sha256: efae961c9e29c4af199e852d4eb86d8d321fe394d0e7b32a1595afd8fbcfc64e
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/aws/smithy-go/@v/v1.22.0.zip
- dest: vendor/github.com/beorn7/perks
sha256: 25bd9e2d94aca770e6dbc1f53725f84f6af4432f631d35dd2c46f96ef0512f1a
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/beorn7/perks/@v/v1.0.1.zip
- dest: vendor/github.com/cespare/xxhash/v2
sha256: 145a26cdc7c49db566017b807c4989ee7f7ddeb569423e9cb99f995fac3621d3
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/cespare/xxhash/v2/@v/v2.3.0.zip
- dest: vendor/github.com/cloudflare/circl
sha256: 4497093cb7544d30e9d5d741a5e62c14fb8989c4271ca0a9a0a03a73570b3b83
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/cloudflare/circl/@v/v1.3.7.zip
- dest: vendor/github.com/davecgh/go-spew
sha256: 6b44a843951f371b7010c754ecc3cabefe815d5ced1c5b9409fb2d697e8a890d
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/davecgh/go-spew/@v/v1.1.1.zip
- dest: vendor/github.com/google/uuid
sha256: 9d9d6cfb28ce6dbe4b518c42c6bccd67bb531a106859808f36e82a5c3fb8c64d
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/google/uuid/@v/v1.3.1.zip
- dest: vendor/github.com/gopherjs/gopherjs
sha256: 10a579f358ed01b90d8efa08878e7068b91bef929929f7c3532ffad3e20b7e67
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/gopherjs/gopherjs/@v/v1.17.2.zip
- dest: vendor/github.com/jtolds/gls
sha256: 2f51f8cb610e846dc4bd9b3c0fbf6bebab24bb06d866db7804e123a61b0bd9ec
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/jtolds/gls/@v/v4.20.0+incompatible.zip
- dest: vendor/github.com/klauspost/compress
sha256: a009d53eecbdb9d6b789e9a0662fa41c87a85ab280291b2b5a5d9664bb1c5e8f
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/klauspost/compress/@v/v1.17.9.zip
- dest: vendor/github.com/klauspost/cpuid/v2
sha256: c59cbc93b0f34418e4cfc1f3a9e0d10e649bfc5bc3080be5bd60619625de13c0
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/klauspost/cpuid/v2/@v/v2.2.6.zip
- dest: vendor/github.com/klauspost/reedsolomon
sha256: 652741b3162ba835ccf7f19cc5d4ab213839e8d6682c6051e9cc862fa51d1100
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/klauspost/reedsolomon/@v/v1.12.0.zip
- dest: vendor/github.com/munnerz/goautoneg
sha256: 3d7ce17916779890be02ea6b3dd6345c3c30c1df502ad9d8b5b9b310e636afd9
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/munnerz/goautoneg/@v/v0.0.0-20191010083416-a7dc8b61c822.zip
- dest: vendor/github.com/patrickmn/go-cache
sha256: d5d1c13e3c9cfeb04a943f656333ec68627dd6ce136af67e2aa5881ad7353c55
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/patrickmn/go-cache/@v/v2.1.0+incompatible.zip
- dest: vendor/github.com/pion/datachannel
sha256: 156a2838881d9170f1385b350e5bb235dfbb55ce5c3f61f1d012b061847b453e
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/datachannel/@v/v1.5.8.zip
- dest: vendor/github.com/pion/dtls/v2
sha256: bf5d7cedf34d996eb259e32a0c887d974623d6862fd0aa0554bae3833df51183
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/dtls/v2/@v/v2.2.12.zip
- dest: vendor/github.com/pion/dtls/v3
sha256: 5d2f55baccc96d869ecf4f47dbfc3183a12a1c0fca9ee0318d65fb055a9c22ee
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/dtls/v3/@v/v3.0.1.zip
- dest: vendor/github.com/pion/interceptor
sha256: adb556731b79950857ce37ef6bb0d6f8db1bfaf3f1e741a9551d0779650a64ae
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/interceptor/@v/v0.1.29.zip
- dest: vendor/github.com/pion/logging
sha256: 9f164a498a38c120b5766a87a59f68aca91fbeed2d7c375ac8ca2a7e424936e4
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/logging/@v/v0.2.2.zip
- dest: vendor/github.com/pion/mdns
sha256: 98adf0366a62dcd8de6b482c94753cc7435cccbacc8561d26a60027e66e9ce38
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/mdns/@v/v0.0.12.zip
- dest: vendor/github.com/pion/randutil
sha256: 35161b7c4ff98bb09fd8055537f9b2499116c19a89b9700b9b1986b7147b6805
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/randutil/@v/v0.1.0.zip
- dest: vendor/github.com/pion/rtcp
sha256: 1fb4498538d7f2d21573c438ee2ad7e4dcc085fa0274b3c7ad0d95897f2e9116
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/rtcp/@v/v1.2.14.zip
- dest: vendor/github.com/pion/rtp
sha256: aa46ffb652fd33b43264b3a7180e179b43732559a6ca5223ac6887727291b352
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/rtp/@v/v1.8.7.zip
- dest: vendor/github.com/pion/sctp
sha256: 6d609d1da99a0cbaec3444c9a30fecd219a186ad8b049aac796ab177a458c7a8
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/sctp/@v/v1.8.19.zip
- dest: vendor/github.com/pion/srtp/v2
sha256: 04411e34fa7f7ca4cae95d90cf8d7f8c50ea054d18fb40e62139e900c261a236
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/srtp/v2/@v/v2.0.20.zip
- dest: vendor/github.com/pion/stun
sha256: 6a58e770cced848d456a3d41539089e2163275766779d3a7bde1ac2cfaee4ebe
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pion/stun/@v/v0.6.1.zip
- dest: vendor/github.com/pion/transport/v3
sha256: f928764cf558648daed662040cffe863b4ca6f88b3eb721de93de11532070d96
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/transport/v3/@v/v3.0.7.zip
- dest: vendor/github.com/pion/turn/v2
sha256: 7572ed2c3953d9c0e821701d322ab4fdb26e37bf41559114a2210582b0c42189
strip-components: 4
type: archive
url: https://proxy.golang.org/github.com/pion/turn/v2/@v/v2.1.6.zip
- dest: vendor/github.com/pkg/errors
sha256: d4c36b8bcd0616290a3913215e0f53b931bd6e00670596f2960df1b44af2bd07
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pkg/errors/@v/v0.9.1.zip
- dest: vendor/github.com/pmezard/go-difflib
sha256: de04cecc1a4b8d53e4357051026794bcbc54f2e6a260cfac508ce69d5d6457a0
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/pmezard/go-difflib/@v/v1.0.0.zip
- dest: vendor/github.com/prometheus/client_model
sha256: 8cd4703b4f1ab7eaa4b925c06a174bc84c93514d0969ac2a20ba51120cd4cab7
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/prometheus/client_model/@v/v0.6.1.zip
- dest: vendor/github.com/prometheus/common
sha256: f7986d2ffaedbd2b1b5a4506e4d8225796bd037f8d5d4aa185c4786fb6f3b3d9
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/prometheus/common/@v/v0.55.0.zip
- dest: vendor/github.com/prometheus/procfs
sha256: d31ad13f1ae121d842ff0f243d029c247e68710edab8a358d6366a67b7feaa6d
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/prometheus/procfs/@v/v0.15.1.zip
- dest: vendor/github.com/smarty/assertions
sha256: c3e160180b54d9364f5b00185fa315f3017f848d9f0c34d0aa905a5510873226
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/smarty/assertions/@v/v1.15.0.zip
- dest: vendor/github.com/templexxx/cpu
sha256: e6799afea24d399860f5fb4357a8ee48bdf8fedc4a5f8e1daf6154dc83d0d8d9
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/templexxx/cpu/@v/v0.1.0.zip
- dest: vendor/github.com/templexxx/xorsimd
sha256: 341af462c20a1ece008520676d1fd7aa26ddb3b0b43bef8cde81c832874f1bc4
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/templexxx/xorsimd/@v/v0.4.2.zip
- dest: vendor/github.com/tjfoc/gmsm
sha256: ba1f3ccf698a62bcb28c594d995f21587021ad759e777aa64367c8a7332cc10b
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/tjfoc/gmsm/@v/v1.4.1.zip
- dest: vendor/github.com/txthinking/runnergroup
sha256: 77da476517ee8cefbd915a27ca3f561a2a3e6aceea0934bae2879f782a1d99b3
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/txthinking/runnergroup/@v/v0.0.0-20210608031112-152c7c4432bf.zip
- dest: vendor/github.com/wlynxg/anet
sha256: ada83cb7c0a7c98c1b17d9d98c202cbd70915bd01a1b8657cdbf1b542fc5d64a
strip-components: 3
type: archive
url: https://proxy.golang.org/github.com/wlynxg/anet/@v/v0.0.3.zip
- dest: vendor/golang.org/x/mod
sha256: 9c64a3efda43c92014675361b2620de1f2815d59875a379f0b3361018e5bdf59
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/mod/@v/v0.18.0.zip
- dest: vendor/golang.org/x/sync
sha256: c79473c265ca571d389bf64fa1e7b2d8999b4ab3eb7af5e3bc185644783a1087
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/sync/@v/v0.8.0.zip
- dest: vendor/golang.org/x/text
sha256: 37f9f40b6c3c56e079684d612439b61ce4e891c3cea32298fbab53a1cac47c35
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/text/@v/v0.19.0.zip
- dest: vendor/golang.org/x/tools
sha256: 6c12cd419d997290febb441698d0e52cab5a71be959ac7c4dd023f86b2d01d1e
strip-components: 3
type: archive
url: https://proxy.golang.org/golang.org/x/tools/@v/v0.22.0.zip
- dest: vendor/google.golang.org/protobuf
sha256: 10308a9146b8fd78c8d04347e3e4c6a446e44d0d2834d05b64210f2911b0416e
strip-components: 2
type: archive
url: https://proxy.golang.org/google.golang.org/protobuf/@v/v1.34.2.zip
- dest: vendor/gopkg.in/yaml.v3
sha256: aab8fbc4e6300ea08e6afe1caea18a21c90c79f489f52c53e2f20431f1a9a015
strip-components: 2
type: archive
url: https://proxy.golang.org/gopkg.in/yaml.v3/@v/v3.0.1.zip

@ -0,0 +1,518 @@
# github.com/andybalholm/brotli v1.0.6
## explicit; go 1.12
github.com/andybalholm/brotli
# github.com/aws/aws-sdk-go-v2 v1.32.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/aws
github.com/aws/aws-sdk-go-v2/aws/defaults
github.com/aws/aws-sdk-go-v2/aws/middleware
github.com/aws/aws-sdk-go-v2/aws/protocol/query
github.com/aws/aws-sdk-go-v2/aws/protocol/restjson
github.com/aws/aws-sdk-go-v2/aws/protocol/xml
github.com/aws/aws-sdk-go-v2/aws/ratelimit
github.com/aws/aws-sdk-go-v2/aws/retry
github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4
github.com/aws/aws-sdk-go-v2/aws/signer/v4
github.com/aws/aws-sdk-go-v2/aws/transport/http
github.com/aws/aws-sdk-go-v2/internal/auth
github.com/aws/aws-sdk-go-v2/internal/auth/smithy
github.com/aws/aws-sdk-go-v2/internal/context
github.com/aws/aws-sdk-go-v2/internal/endpoints
github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn
github.com/aws/aws-sdk-go-v2/internal/middleware
github.com/aws/aws-sdk-go-v2/internal/rand
github.com/aws/aws-sdk-go-v2/internal/sdk
github.com/aws/aws-sdk-go-v2/internal/sdkio
github.com/aws/aws-sdk-go-v2/internal/shareddefaults
github.com/aws/aws-sdk-go-v2/internal/strings
github.com/aws/aws-sdk-go-v2/internal/sync/singleflight
github.com/aws/aws-sdk-go-v2/internal/timeconv
# github.com/aws/aws-sdk-go-v2/config v1.28.0
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/config
# github.com/aws/aws-sdk-go-v2/credentials v1.17.41
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/credentials
github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
github.com/aws/aws-sdk-go-v2/credentials/endpointcreds
github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client
github.com/aws/aws-sdk-go-v2/credentials/processcreds
github.com/aws/aws-sdk-go-v2/credentials/ssocreds
github.com/aws/aws-sdk-go-v2/credentials/stscreds
# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/feature/ec2/imds
github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config
# github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/internal/configsources
# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2
# github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/internal/ini
# github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding
# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url
# github.com/aws/aws-sdk-go-v2/service/sqs v1.36.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/sqs
github.com/aws/aws-sdk-go-v2/service/sqs/internal/endpoints
github.com/aws/aws-sdk-go-v2/service/sqs/types
# github.com/aws/aws-sdk-go-v2/service/sso v1.24.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/sso
github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints
github.com/aws/aws-sdk-go-v2/service/sso/types
# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/ssooidc
github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints
github.com/aws/aws-sdk-go-v2/service/ssooidc/types
# github.com/aws/aws-sdk-go-v2/service/sts v1.32.2
## explicit; go 1.21
github.com/aws/aws-sdk-go-v2/service/sts
github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints
github.com/aws/aws-sdk-go-v2/service/sts/types
# github.com/aws/smithy-go v1.22.0
## explicit; go 1.21
github.com/aws/smithy-go
github.com/aws/smithy-go/auth
github.com/aws/smithy-go/auth/bearer
github.com/aws/smithy-go/context
github.com/aws/smithy-go/document
github.com/aws/smithy-go/encoding
github.com/aws/smithy-go/encoding/httpbinding
github.com/aws/smithy-go/encoding/json
github.com/aws/smithy-go/encoding/xml
github.com/aws/smithy-go/endpoints
github.com/aws/smithy-go/internal/sync/singleflight
github.com/aws/smithy-go/io
github.com/aws/smithy-go/logging
github.com/aws/smithy-go/metrics
github.com/aws/smithy-go/middleware
github.com/aws/smithy-go/private/requestcompression
github.com/aws/smithy-go/ptr
github.com/aws/smithy-go/rand
github.com/aws/smithy-go/time
github.com/aws/smithy-go/tracing
github.com/aws/smithy-go/transport/http
github.com/aws/smithy-go/transport/http/internal/io
# github.com/beorn7/perks v1.0.1
## explicit; go 1.11
github.com/beorn7/perks/quantile
# github.com/cespare/xxhash/v2 v2.3.0
## explicit; go 1.11
github.com/cespare/xxhash/v2
# github.com/cloudflare/circl v1.3.7
## explicit; go 1.19
github.com/cloudflare/circl/dh/x25519
github.com/cloudflare/circl/dh/x448
github.com/cloudflare/circl/ecc/goldilocks
github.com/cloudflare/circl/ecc/p384
github.com/cloudflare/circl/hpke
github.com/cloudflare/circl/internal/conv
github.com/cloudflare/circl/internal/sha3
github.com/cloudflare/circl/kem
github.com/cloudflare/circl/kem/hybrid
github.com/cloudflare/circl/kem/kyber/kyber1024
github.com/cloudflare/circl/kem/kyber/kyber512
github.com/cloudflare/circl/kem/kyber/kyber768
github.com/cloudflare/circl/math
github.com/cloudflare/circl/math/fp25519
github.com/cloudflare/circl/math/fp448
github.com/cloudflare/circl/math/mlsbset
github.com/cloudflare/circl/pke/kyber/internal/common
github.com/cloudflare/circl/pke/kyber/internal/common/params
github.com/cloudflare/circl/pke/kyber/kyber1024
github.com/cloudflare/circl/pke/kyber/kyber1024/internal
github.com/cloudflare/circl/pke/kyber/kyber512
github.com/cloudflare/circl/pke/kyber/kyber512/internal
github.com/cloudflare/circl/pke/kyber/kyber768
github.com/cloudflare/circl/pke/kyber/kyber768/internal
github.com/cloudflare/circl/pki
github.com/cloudflare/circl/sign
github.com/cloudflare/circl/sign/dilithium/internal/common
github.com/cloudflare/circl/sign/dilithium/internal/common/params
github.com/cloudflare/circl/sign/dilithium/mode2
github.com/cloudflare/circl/sign/dilithium/mode2/internal
github.com/cloudflare/circl/sign/dilithium/mode3
github.com/cloudflare/circl/sign/dilithium/mode3/internal
github.com/cloudflare/circl/sign/ed25519
github.com/cloudflare/circl/sign/ed448
github.com/cloudflare/circl/sign/eddilithium2
github.com/cloudflare/circl/sign/eddilithium3
github.com/cloudflare/circl/sign/schemes
github.com/cloudflare/circl/simd/keccakf1600
github.com/cloudflare/circl/xof
github.com/cloudflare/circl/xof/k12
# github.com/davecgh/go-spew v1.1.1
## explicit
github.com/davecgh/go-spew/spew
# github.com/golang/mock v1.6.0
## explicit; go 1.11
github.com/golang/mock/gomock
# github.com/google/uuid v1.3.1
## explicit
github.com/google/uuid
# github.com/gopherjs/gopherjs v1.17.2
## explicit; go 1.17
github.com/gopherjs/gopherjs/js
# github.com/gorilla/websocket v1.5.3
## explicit; go 1.12
github.com/gorilla/websocket
# github.com/jtolds/gls v4.20.0+incompatible
## explicit
github.com/jtolds/gls
# github.com/klauspost/compress v1.17.9
## explicit; go 1.20
github.com/klauspost/compress
github.com/klauspost/compress/fse
github.com/klauspost/compress/huff0
github.com/klauspost/compress/internal/cpuinfo
github.com/klauspost/compress/internal/snapref
github.com/klauspost/compress/zstd
github.com/klauspost/compress/zstd/internal/xxhash
# github.com/klauspost/cpuid/v2 v2.2.6
## explicit; go 1.15
github.com/klauspost/cpuid/v2
# github.com/klauspost/reedsolomon v1.12.0
## explicit; go 1.18
github.com/klauspost/reedsolomon
# github.com/miekg/dns v1.1.62
## explicit; go 1.19
github.com/miekg/dns
# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
## explicit
github.com/munnerz/goautoneg
# github.com/patrickmn/go-cache v2.1.0+incompatible
## explicit
github.com/patrickmn/go-cache
# github.com/pion/datachannel v1.5.8
## explicit; go 1.19
github.com/pion/datachannel
# github.com/pion/dtls/v2 v2.2.12
## explicit; go 1.13
github.com/pion/dtls/v2
github.com/pion/dtls/v2/internal/ciphersuite
github.com/pion/dtls/v2/internal/ciphersuite/types
github.com/pion/dtls/v2/internal/closer
github.com/pion/dtls/v2/internal/util
github.com/pion/dtls/v2/pkg/crypto/ccm
github.com/pion/dtls/v2/pkg/crypto/ciphersuite
github.com/pion/dtls/v2/pkg/crypto/clientcertificate
github.com/pion/dtls/v2/pkg/crypto/elliptic
github.com/pion/dtls/v2/pkg/crypto/fingerprint
github.com/pion/dtls/v2/pkg/crypto/hash
github.com/pion/dtls/v2/pkg/crypto/prf
github.com/pion/dtls/v2/pkg/crypto/signature
github.com/pion/dtls/v2/pkg/crypto/signaturehash
github.com/pion/dtls/v2/pkg/protocol
github.com/pion/dtls/v2/pkg/protocol/alert
github.com/pion/dtls/v2/pkg/protocol/extension
github.com/pion/dtls/v2/pkg/protocol/handshake
github.com/pion/dtls/v2/pkg/protocol/recordlayer
# github.com/pion/dtls/v3 v3.0.1
## explicit; go 1.19
github.com/pion/dtls/v3
github.com/pion/dtls/v3/internal/ciphersuite
github.com/pion/dtls/v3/internal/ciphersuite/types
github.com/pion/dtls/v3/internal/closer
github.com/pion/dtls/v3/internal/net
github.com/pion/dtls/v3/internal/net/udp
github.com/pion/dtls/v3/internal/util
github.com/pion/dtls/v3/pkg/crypto/ccm
github.com/pion/dtls/v3/pkg/crypto/ciphersuite
github.com/pion/dtls/v3/pkg/crypto/clientcertificate
github.com/pion/dtls/v3/pkg/crypto/elliptic
github.com/pion/dtls/v3/pkg/crypto/hash
github.com/pion/dtls/v3/pkg/crypto/prf
github.com/pion/dtls/v3/pkg/crypto/signature
github.com/pion/dtls/v3/pkg/crypto/signaturehash
github.com/pion/dtls/v3/pkg/net
github.com/pion/dtls/v3/pkg/protocol
github.com/pion/dtls/v3/pkg/protocol/alert
github.com/pion/dtls/v3/pkg/protocol/extension
github.com/pion/dtls/v3/pkg/protocol/handshake
github.com/pion/dtls/v3/pkg/protocol/recordlayer
# github.com/pion/ice/v2 v2.3.36
## explicit; go 1.13
github.com/pion/ice/v2
github.com/pion/ice/v2/internal/atomic
github.com/pion/ice/v2/internal/fakenet
github.com/pion/ice/v2/internal/stun
# github.com/pion/interceptor v0.1.29
## explicit; go 1.19
github.com/pion/interceptor
github.com/pion/interceptor/internal/ntp
github.com/pion/interceptor/internal/sequencenumber
github.com/pion/interceptor/pkg/nack
github.com/pion/interceptor/pkg/report
github.com/pion/interceptor/pkg/twcc
# github.com/pion/logging v0.2.2
## explicit; go 1.12
github.com/pion/logging
# github.com/pion/mdns v0.0.12
## explicit; go 1.19
github.com/pion/mdns
# github.com/pion/randutil v0.1.0
## explicit; go 1.14
github.com/pion/randutil
# github.com/pion/rtcp v1.2.14
## explicit; go 1.13
github.com/pion/rtcp
# github.com/pion/rtp v1.8.7
## explicit; go 1.19
github.com/pion/rtp
github.com/pion/rtp/codecs
github.com/pion/rtp/codecs/av1/obu
github.com/pion/rtp/codecs/vp9
# github.com/pion/sctp v1.8.19
## explicit; go 1.19
github.com/pion/sctp
# github.com/pion/sdp/v3 v3.0.9
## explicit; go 1.13
github.com/pion/sdp/v3
# github.com/pion/srtp/v2 v2.0.20
## explicit; go 1.14
github.com/pion/srtp/v2
# github.com/pion/stun v0.6.1
## explicit; go 1.12
github.com/pion/stun
github.com/pion/stun/internal/hmac
# github.com/pion/stun/v3 v3.0.0
## explicit; go 1.19
github.com/pion/stun/v3
github.com/pion/stun/v3/internal/hmac
# github.com/pion/transport/v2 v2.2.10
## explicit; go 1.12
github.com/pion/transport/v2
github.com/pion/transport/v2/connctx
github.com/pion/transport/v2/deadline
github.com/pion/transport/v2/packetio
github.com/pion/transport/v2/replaydetector
github.com/pion/transport/v2/stdnet
github.com/pion/transport/v2/udp
github.com/pion/transport/v2/utils/xor
github.com/pion/transport/v2/vnet
# github.com/pion/transport/v3 v3.0.7
## explicit; go 1.19
github.com/pion/transport/v3
github.com/pion/transport/v3/deadline
github.com/pion/transport/v3/netctx
github.com/pion/transport/v3/replaydetector
github.com/pion/transport/v3/stdnet
github.com/pion/transport/v3/utils/xor
# github.com/pion/turn/v2 v2.1.6
## explicit; go 1.13
github.com/pion/turn/v2
github.com/pion/turn/v2/internal/allocation
github.com/pion/turn/v2/internal/client
github.com/pion/turn/v2/internal/ipnet
github.com/pion/turn/v2/internal/proto
github.com/pion/turn/v2/internal/server
# github.com/pion/webrtc/v3 v3.3.4
## explicit; go 1.17
github.com/pion/webrtc/v3
github.com/pion/webrtc/v3/internal/fmtp
github.com/pion/webrtc/v3/internal/mux
github.com/pion/webrtc/v3/internal/util
github.com/pion/webrtc/v3/pkg/media
github.com/pion/webrtc/v3/pkg/rtcerr
# github.com/pkg/errors v0.9.1
## explicit
github.com/pkg/errors
# github.com/pmezard/go-difflib v1.0.0
## explicit
github.com/pmezard/go-difflib/difflib
# github.com/prometheus/client_golang v1.20.5
## explicit; go 1.20
github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil
github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header
github.com/prometheus/client_golang/prometheus
github.com/prometheus/client_golang/prometheus/internal
github.com/prometheus/client_golang/prometheus/promhttp
# github.com/prometheus/client_model v0.6.1
## explicit; go 1.19
github.com/prometheus/client_model/go
# github.com/prometheus/common v0.55.0
## explicit; go 1.20
github.com/prometheus/common/expfmt
github.com/prometheus/common/model
# github.com/prometheus/procfs v0.15.1
## explicit; go 1.20
github.com/prometheus/procfs
github.com/prometheus/procfs/internal/fs
github.com/prometheus/procfs/internal/util
# github.com/realclientip/realclientip-go v1.0.0
## explicit; go 1.13
github.com/realclientip/realclientip-go
# github.com/refraction-networking/utls v1.6.7
## explicit; go 1.21
github.com/refraction-networking/utls
github.com/refraction-networking/utls/dicttls
github.com/refraction-networking/utls/internal/boring
github.com/refraction-networking/utls/internal/helper
github.com/refraction-networking/utls/internal/quicvarint
github.com/refraction-networking/utls/internal/quicvarint/protocol
# github.com/smarty/assertions v1.15.0
## explicit; go 1.18
github.com/smarty/assertions
github.com/smarty/assertions/internal/go-diff/diffmatchpatch
github.com/smarty/assertions/internal/go-render/render
github.com/smarty/assertions/internal/oglematchers
# github.com/smartystreets/goconvey v1.8.1
## explicit; go 1.18
github.com/smartystreets/goconvey/convey
github.com/smartystreets/goconvey/convey/gotest
github.com/smartystreets/goconvey/convey/reporting
# github.com/stretchr/testify v1.9.0
## explicit; go 1.17
github.com/stretchr/testify/assert
github.com/stretchr/testify/require
# github.com/templexxx/cpu v0.1.0
## explicit
github.com/templexxx/cpu
# github.com/templexxx/xorsimd v0.4.2
## explicit; go 1.13
github.com/templexxx/xorsimd
# github.com/tjfoc/gmsm v1.4.1
## explicit; go 1.14
github.com/tjfoc/gmsm/sm4
# github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf
## explicit
github.com/txthinking/runnergroup
# github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301
## explicit; go 1.16
github.com/txthinking/socks5
# github.com/wlynxg/anet v0.0.3
## explicit; go 1.20
github.com/wlynxg/anet
# github.com/xtaci/kcp-go/v5 v5.6.8
## explicit; go 1.21
github.com/xtaci/kcp-go/v5
# github.com/xtaci/smux v1.5.31
## explicit; go 1.13
github.com/xtaci/smux
# gitlab.torproject.org/tpo/anti-censorship/geoip v0.0.0-20210928150955-7ce4b3d98d01
## explicit; go 1.15
gitlab.torproject.org/tpo/anti-censorship/geoip
# gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.5.0
## explicit; go 1.11
gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib
# gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil v0.0.0-20240710081135-6c4d8ed41027
## explicit; go 1.21
gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil/safelog
gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil/safeprom
# golang.org/x/crypto v0.28.0
## explicit; go 1.20
golang.org/x/crypto/acme
golang.org/x/crypto/acme/autocert
golang.org/x/crypto/blake2b
golang.org/x/crypto/blake2s
golang.org/x/crypto/blowfish
golang.org/x/crypto/cast5
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/cryptobyte/asn1
golang.org/x/crypto/curve25519
golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/alias
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/pbkdf2
golang.org/x/crypto/salsa20
golang.org/x/crypto/salsa20/salsa
golang.org/x/crypto/sha3
golang.org/x/crypto/tea
golang.org/x/crypto/twofish
golang.org/x/crypto/xtea
# golang.org/x/mod v0.18.0
## explicit; go 1.18
golang.org/x/mod/semver
# golang.org/x/net v0.30.0
## explicit; go 1.18
golang.org/x/net/bpf
golang.org/x/net/dns/dnsmessage
golang.org/x/net/html
golang.org/x/net/html/atom
golang.org/x/net/http/httpguts
golang.org/x/net/http2
golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/net/internal/iana
golang.org/x/net/internal/socket
golang.org/x/net/internal/socks
golang.org/x/net/ipv4
golang.org/x/net/ipv6
golang.org/x/net/proxy
# golang.org/x/sync v0.8.0
## explicit; go 1.18
golang.org/x/sync/errgroup
# golang.org/x/sys v0.26.0
## explicit; go 1.18
golang.org/x/sys/cpu
golang.org/x/sys/unix
golang.org/x/sys/windows
# golang.org/x/text v0.19.0
## explicit; go 1.18
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
# golang.org/x/tools v0.22.0
## explicit; go 1.19
golang.org/x/tools/go/gcexportdata
golang.org/x/tools/go/internal/packagesdriver
golang.org/x/tools/go/packages
golang.org/x/tools/go/types/objectpath
golang.org/x/tools/internal/aliases
golang.org/x/tools/internal/event
golang.org/x/tools/internal/event/core
golang.org/x/tools/internal/event/keys
golang.org/x/tools/internal/event/label
golang.org/x/tools/internal/gcimporter
golang.org/x/tools/internal/gocommand
golang.org/x/tools/internal/packagesinternal
golang.org/x/tools/internal/pkgbits
golang.org/x/tools/internal/stdlib
golang.org/x/tools/internal/tokeninternal
golang.org/x/tools/internal/typesinternal
golang.org/x/tools/internal/versions
# google.golang.org/protobuf v1.34.2
## explicit; go 1.20
google.golang.org/protobuf/encoding/protodelim
google.golang.org/protobuf/encoding/prototext
google.golang.org/protobuf/encoding/protowire
google.golang.org/protobuf/internal/descfmt
google.golang.org/protobuf/internal/descopts
google.golang.org/protobuf/internal/detrand
google.golang.org/protobuf/internal/editiondefaults
google.golang.org/protobuf/internal/encoding/defval
google.golang.org/protobuf/internal/encoding/messageset
google.golang.org/protobuf/internal/encoding/tag
google.golang.org/protobuf/internal/encoding/text
google.golang.org/protobuf/internal/errors
google.golang.org/protobuf/internal/filedesc
google.golang.org/protobuf/internal/filetype
google.golang.org/protobuf/internal/flags
google.golang.org/protobuf/internal/genid
google.golang.org/protobuf/internal/impl
google.golang.org/protobuf/internal/order
google.golang.org/protobuf/internal/pragma
google.golang.org/protobuf/internal/set
google.golang.org/protobuf/internal/strs
google.golang.org/protobuf/internal/version
google.golang.org/protobuf/proto
google.golang.org/protobuf/reflect/protoreflect
google.golang.org/protobuf/reflect/protoregistry
google.golang.org/protobuf/runtime/protoiface
google.golang.org/protobuf/runtime/protoimpl
google.golang.org/protobuf/types/known/timestamppb
# gopkg.in/yaml.v3 v3.0.1
## explicit
gopkg.in/yaml.v3

@ -223,3 +223,4 @@ parts:
cd meek-client
mkdir -p /build/onionshare/meek-client/install/bin
go build -o /build/onionshare/meek-client/install/bin/meek-client ./...
cp /build/onionshare/meek-client/install/bin/meek-client $CRAFT_PART_INSTALL/bin