Initial commit
commit
d1159b3ee0
@ -0,0 +1,3 @@
|
|||||||
|
out/
|
||||||
|
tmp/
|
||||||
|
*.swp
|
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "rbm"]
|
||||||
|
path = rbm
|
||||||
|
url = https://git.torproject.org/builders/rbm.git
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exec nix-shell -p perl perlPackages.PathTiny perlPackages.YAMLLibYAML perlPackages.TemplateToolkit perlPackages.IOCaptureOutput perlPackages.FileCopyRecursive perlPackages.StringShellQuote perlPackages.SortVersions perlPackages.DataUUID perlPackages.DataDump perlPackages.DigestSHA perlPackages.FileTemp perlPackages.JSON debootstrap runc
|
@ -0,0 +1,12 @@
|
|||||||
|
RBM=./rbm/rbm
|
||||||
|
|
||||||
|
all: release
|
||||||
|
|
||||||
|
release:
|
||||||
|
$(RBM) build ncdns --target ncdns-linux-x86_64
|
||||||
|
|
||||||
|
submodule-update:
|
||||||
|
git submodule update --init
|
||||||
|
|
||||||
|
fetch: submodule-update
|
||||||
|
$(RBM) fetch
|
@ -0,0 +1,5 @@
|
|||||||
|
# ncdns-repro
|
||||||
|
|
||||||
|
ncdns reproducible build harnesses for RBM.
|
||||||
|
|
||||||
|
MIT License.
|
@ -0,0 +1,25 @@
|
|||||||
|
git github.com/alecthomas/template b867cc6ab45cece8143cfcc6fc9c77cf3f2c23c0 heads/master
|
||||||
|
git github.com/alecthomas/units 2efee857e7cfd4f3d0138cc3cbb1b4966962b93a heads/master
|
||||||
|
git github.com/BurntSushi/toml 056c9bc7be7190eaa7715723883caffa5f8fa3e4 heads/master
|
||||||
|
git github.com/coreos/go-systemd a831f36d09de8f095c28eeee839df52e9de5031f heads/master
|
||||||
|
git github.com/golang/groupcache 604ed5785183e59ae2789449d89e73f3a2a77987 heads/master
|
||||||
|
git github.com/hlandau/buildinfo 337a29b5499734e584d4630ce535af64c5fe7813 heads/master
|
||||||
|
git github.com/hlandau/degoutils 8fa2440b63444dad556d76366f1c3ee070c8a577 heads/master+
|
||||||
|
git github.com/hlandau/dexlogconfig 244f29bd260884993b176cd14ef2f7631f6f3c18 heads/master
|
||||||
|
git github.com/hlandauf/btcjson e204653fd7386803f14e4ec744ab63dde15002dc heads/master
|
||||||
|
git github.com/hlandau/ncbtcjsontypes 02ea7272dd11bb6153a3cd06899a0999ac6a16e0 heads/master
|
||||||
|
git github.com/hlandau/xlog 197ef798aed28e08ed3e176e678fda81be993a31 tags/v1.0.0
|
||||||
|
git github.com/kr/pretty e6ac2fc51e89a3249e82157fa0bb7a18ef9dd5bb heads/master
|
||||||
|
git github.com/kr/text bb797dc4fb8320488f47bf11de07a733d7233e1f heads/master
|
||||||
|
git github.com/mattn/go-isatty 7fcbc72f853b92b5720db4a6b8482be612daef24 heads/master
|
||||||
|
git github.com/miekg/dns c144371d31e35dc0588755ada496462c102c90a6 heads/master
|
||||||
|
git github.com/namecoin/ncdns 19534f1dcfd1151bd9c072459caac12f6fb384df tags/v0.0.6
|
||||||
|
git github.com/ogier/pflag 6f7159c3154e7cd4ab30f6cc9c58fa3fd0f22325 heads/master
|
||||||
|
git github.com/shiena/ansicolor a5e2b567a4dd6cc74545b8a4f27c9d63b9e7735b heads/master
|
||||||
|
git golang.org/x/net e0c57d8f86c17f0724497efcb3bc617e82834821 heads/master
|
||||||
|
git gopkg.in/alecthomas/kingpin.v2 7f0871f2e17818990e4eed73f9b5c2f429501228 tags/v2.2.4
|
||||||
|
git gopkg.in/hlandau/configurable.v1 34642c4c8cbf56801d0e34f0e82187305983ac26 heads/master
|
||||||
|
git gopkg.in/hlandau/easyconfig.v1 c31249162931b4963bbe6e501cccb60d23271a3f tags/v1.0.17
|
||||||
|
git gopkg.in/hlandau/madns.v1 b82ebc776bd8a13824350c7c108180d601e38352 tags/v1.0.7+
|
||||||
|
git gopkg.in/hlandau/service.v2 b64b3467ebd16f64faec1640c25e318efc0c0d7b tags/v2.0.16
|
||||||
|
git gopkg.in/hlandau/svcutils.v1 c25dac49e50cbbcbef8c81b089f56156f4067729 tags/v1.0.10
|
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
go list -f '{{range $imp := .Deps}}{{printf "%s\n" $imp}}{{end}}' 'github.com/namecoin/ncdns'|sort -u|xargs go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' | awk "{print \"$GOPATH/src/\" \$0}" | (while read line; do x="$line"; while [ ! -e "$x/.git" -a ! -e "$x/.hg" ]; do x=${x%/*}; if [ "$x" = "" ]; then break; fi; done; echo "$x"; done) | sort -u | (while read line; do echo ${line#$GOPATH/src/}; done)
|
@ -0,0 +1,268 @@
|
|||||||
|
{
|
||||||
|
"ociVersion": "1.0.0[% IF !c("var_p/runc_spec100") %]-rc1[% END %]",
|
||||||
|
"platform": {
|
||||||
|
"os": "linux",
|
||||||
|
"arch": "amd64"
|
||||||
|
},
|
||||||
|
"process": {
|
||||||
|
"terminal": [% IF c("interactive") %]true[% ELSE %]false[% END %],
|
||||||
|
"user": {
|
||||||
|
"uid": 0,
|
||||||
|
"gid": 0
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"/rbm/run"
|
||||||
|
],
|
||||||
|
"env": [
|
||||||
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
||||||
|
"TERM=xterm"
|
||||||
|
],
|
||||||
|
"cwd": "/",
|
||||||
|
[% IF c("var_p/runc_spec100") -%]
|
||||||
|
"capabilities": {
|
||||||
|
"bounding": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
],
|
||||||
|
"effective": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
],
|
||||||
|
"inheritable": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
],
|
||||||
|
"permitted": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
],
|
||||||
|
"ambient": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
[% ELSE -%]
|
||||||
|
"capabilities": [
|
||||||
|
"CAP_AUDIT_WRITE",
|
||||||
|
"CAP_KILL",
|
||||||
|
"CAP_NET_BIND_SERVICE",
|
||||||
|
"CAP_SETGID",
|
||||||
|
"CAP_SETUID",
|
||||||
|
"CAP_MKNOD",
|
||||||
|
"CAP_SYS_CHROOT",
|
||||||
|
[% IF c("var/container/CAP_SYS_ADMIN") -%]
|
||||||
|
"CAP_SYS_ADMIN",
|
||||||
|
[% END -%]
|
||||||
|
"CAP_FSETID",
|
||||||
|
"CAP_FOWNER",
|
||||||
|
"CAP_DAC_OVERRIDE",
|
||||||
|
"CAP_CHOWN"
|
||||||
|
],
|
||||||
|
[% END -%]
|
||||||
|
"rlimits": [
|
||||||
|
{
|
||||||
|
"type": "RLIMIT_NOFILE",
|
||||||
|
"hard": 1024,
|
||||||
|
"soft": 1024
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"noNewPrivileges": true
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"path": "rootfs",
|
||||||
|
"readonly": false
|
||||||
|
},
|
||||||
|
"hostname": "runc",
|
||||||
|
"mounts": [
|
||||||
|
{
|
||||||
|
"destination": "/proc",
|
||||||
|
"type": "proc",
|
||||||
|
"source": "proc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "bind",
|
||||||
|
"source": "/etc/resolv.conf",
|
||||||
|
"destination": "/etc/resolv.conf",
|
||||||
|
"options": [
|
||||||
|
"rbind",
|
||||||
|
"ro"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/dev",
|
||||||
|
"type": "tmpfs",
|
||||||
|
"source": "tmpfs",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"strictatime",
|
||||||
|
"mode=755",
|
||||||
|
"size=65536k"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/dev/pts",
|
||||||
|
"type": "devpts",
|
||||||
|
"source": "devpts",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"noexec",
|
||||||
|
"newinstance",
|
||||||
|
"ptmxmode=0666",
|
||||||
|
"mode=0620",
|
||||||
|
"gid=5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/dev/shm",
|
||||||
|
"type": "tmpfs",
|
||||||
|
"source": "shm",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"noexec",
|
||||||
|
"nodev",
|
||||||
|
"mode=1777",
|
||||||
|
"size=65536k"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/dev/mqueue",
|
||||||
|
"type": "mqueue",
|
||||||
|
"source": "mqueue",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"noexec",
|
||||||
|
"nodev"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/sys",
|
||||||
|
"type": "sysfs",
|
||||||
|
"source": "sysfs",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"noexec",
|
||||||
|
"nodev",
|
||||||
|
"ro"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"destination": "/sys/fs/cgroup",
|
||||||
|
"type": "cgroup",
|
||||||
|
"source": "cgroup",
|
||||||
|
"options": [
|
||||||
|
"nosuid",
|
||||||
|
"noexec",
|
||||||
|
"nodev",
|
||||||
|
"relatime",
|
||||||
|
"ro"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hooks": {},
|
||||||
|
"linux": {
|
||||||
|
"resources": {
|
||||||
|
"devices": [
|
||||||
|
{
|
||||||
|
"allow": false,
|
||||||
|
"access": "rwm"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"namespaces": [
|
||||||
|
{
|
||||||
|
"type": "pid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ipc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "mount"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maskedPaths": [
|
||||||
|
"/proc/kcore",
|
||||||
|
"/proc/latency_stats",
|
||||||
|
"/proc/timer_stats",
|
||||||
|
[% IF c("var_p/runc_spec100") -%]
|
||||||
|
"/proc/timer_list",
|
||||||
|
"/sys/firmware",
|
||||||
|
[% END -%]
|
||||||
|
"/proc/sched_debug"
|
||||||
|
],
|
||||||
|
"readonlyPaths": [
|
||||||
|
"/proc/asound",
|
||||||
|
"/proc/bus",
|
||||||
|
"/proc/fs",
|
||||||
|
"/proc/irq",
|
||||||
|
"/proc/sys",
|
||||||
|
"/proc/sysrq-trigger"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"solaris": {
|
||||||
|
"cappedCPU": {},
|
||||||
|
"cappedMemory": {}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
@ -0,0 +1,62 @@
|
|||||||
|
filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %]-[% sha256(c("pre")).substr(0,12) %].tar.gz'
|
||||||
|
pkg_type: build
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
suite: '[% pc(c("origin_project"), "var/container/suite") %]'
|
||||||
|
arch: '[% pc(c("origin_project"), "var/container/arch") %]'
|
||||||
|
|
||||||
|
lsb_release:
|
||||||
|
id: Debian
|
||||||
|
codename: wheezy
|
||||||
|
release: 7.11
|
||||||
|
|
||||||
|
pre: |
|
||||||
|
#!/bin/sh
|
||||||
|
# [% c('var/container/suite') %]
|
||||||
|
set -e
|
||||||
|
[% IF pc(c('origin_project'), 'var/pre_pkginst') -%]
|
||||||
|
[% pc(c('origin_project'), 'var/pre_pkginst') %]
|
||||||
|
[% END -%]
|
||||||
|
apt-get update -y
|
||||||
|
apt-get upgrade -y
|
||||||
|
[%
|
||||||
|
deps = [];
|
||||||
|
IF pc(c('origin_project'), 'var/deps');
|
||||||
|
CALL deps.import(pc(c('origin_project'), 'var/deps'));
|
||||||
|
END;
|
||||||
|
IF pc(c('origin_project'), 'var/arch_deps');
|
||||||
|
CALL deps.import(pc(c('origin_project'), 'var/arch_deps'));
|
||||||
|
END;
|
||||||
|
IF deps.size;
|
||||||
|
IF pc(c('origin_project'), 'var/sort_deps');
|
||||||
|
deps = deps.sort;
|
||||||
|
END;
|
||||||
|
FOREACH pkg IN deps;
|
||||||
|
SET p = tmpl(pkg);
|
||||||
|
IF p;
|
||||||
|
GET c('install_package', { pkg_name => p });
|
||||||
|
GET "\n";
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
-%]
|
||||||
|
[% IF pc(c('origin_project'), 'var/post_pkginst') -%]
|
||||||
|
[% pc(c('origin_project'), 'var/post_pkginst') %]
|
||||||
|
[% END -%]
|
||||||
|
|
||||||
|
remote_get: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
[%
|
||||||
|
SET src = shell_quote(c('get_src', { error_if_undef => 1 }));
|
||||||
|
SET dst = shell_quote(c('get_dst', { error_if_undef => 1 }));
|
||||||
|
-%]
|
||||||
|
mkdir -p "[% dst %]"
|
||||||
|
sudo tar -C "[% c("var/container/dir") %]/rootfs" -czf "[% dst %]/[% c("filename") %]" .
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: debootstrap-image
|
||||||
|
target:
|
||||||
|
- '[% c("var/container/suite") %]-[% c("var/container/arch") %]'
|
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
@ -0,0 +1,55 @@
|
|||||||
|
filename: 'container-image_[% c("var/container/suite") %]-[% c("var/container/arch") %].tar.gz'
|
||||||
|
pkg_type: build
|
||||||
|
|
||||||
|
var:
|
||||||
|
ubuntu_version: 18.04.1
|
||||||
|
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
# We need CAP_SYS_ADMIN for debootstrap to work
|
||||||
|
CAP_SYS_ADMIN: 1
|
||||||
|
|
||||||
|
pre: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
apt-get update -y
|
||||||
|
apt-get install -y debian-archive-keyring ubuntu-keyring debootstrap
|
||||||
|
container=systemd-nspawn debootstrap --arch=[% c("var/container/arch") %] [% c("var/container/debootstrap_opt") %] [% c("var/container/suite") %] base-image [% c("var/container/debootstrap_mirror") %]
|
||||||
|
tar -C ./base-image -czf [% dest_dir %]/[% c("filename") %] .
|
||||||
|
|
||||||
|
targets:
|
||||||
|
wheezy-amd64:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: wheezy
|
||||||
|
arch: amd64
|
||||||
|
wheezy-i386:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: wheezy
|
||||||
|
arch: i386
|
||||||
|
jessie-amd64:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: jessie
|
||||||
|
arch: amd64
|
||||||
|
jessie-i386:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: jessie
|
||||||
|
arch: i386
|
||||||
|
buster-amd64:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: buster
|
||||||
|
arch: amd64
|
||||||
|
stretch-amd64:
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
suite: stretch
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- URL: 'http://cdimage.ubuntu.com/ubuntu-base/releases/[% c("var/ubuntu_version") %]/release/ubuntu-base-[% c("var/ubuntu_version") %]-base-amd64.tar.gz'
|
||||||
|
filename: 'container-image_ubuntu-base-[% c("var/ubuntu_version") %]-base-amd64.tar.gz'
|
||||||
|
sha256sum: ed76e649f65548a80b361b68011085ec4dde7bb762d667657acbef87765e1a12
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/BurntSushi/toml.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/BurntSushi/toml"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/BurntSushi/toml
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/alecthomas/template.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/alecthomas/template"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/alecthomas/template
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/alecthomas/units.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/alecthomas/units"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/alecthomas/units
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,19 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/coreos/go-systemd.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/coreos/go-systemd"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/coreos/go-systemd
|
||||||
|
go_lib_install:
|
||||||
|
- github.com/coreos/go-systemd/journal
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,19 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/golang/groupcache.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/golang/groupcache"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/golang/groupcache
|
||||||
|
go_lib_install:
|
||||||
|
- github.com/golang/groupcache/lru
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,20 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/buildinfo.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandau/buildinfo"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandau/buildinfo
|
||||||
|
go_lib_deps:
|
||||||
|
- gopkg.in,hlandau,easyconfig.v1
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
project: gopkg.in,hlandau,easyconfig.v1
|
@ -0,0 +1,22 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/degoutils.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandau/degoutils"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandau/degoutils
|
||||||
|
go_lib_install:
|
||||||
|
- github.com/hlandau/degoutils/net
|
||||||
|
go_lib_deps:
|
||||||
|
- golang.org,x,net
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: golang.org,x,net
|
||||||
|
project: golang.org,x,net
|
@ -0,0 +1,29 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/dexlogconfig.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandau/dexlogconfig"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandau/dexlogconfig
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,hlandau,xlog
|
||||||
|
- gopkg.in,hlandau,easyconfig.v1
|
||||||
|
- github.com,coreos,go-systemd
|
||||||
|
- github.com,hlandau,buildinfo
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,hlandau,xlog
|
||||||
|
project: github.com,hlandau,xlog
|
||||||
|
- name: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
project: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
- name: github.com,coreos,go-systemd
|
||||||
|
project: github.com,coreos,go-systemd
|
||||||
|
- name: github.com,hlandau,buildinfo
|
||||||
|
project: github.com,hlandau,buildinfo
|
@ -0,0 +1,20 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/ncbtcjsontypes.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandau/ncbtcjsontypes"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandau/ncbtcjsontypes
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,hlandauf,btcjson
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,hlandauf,btcjson
|
||||||
|
project: github.com,hlandauf,btcjson
|
@ -0,0 +1,23 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/xlog.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandau/xlog"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandau/xlog
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,mattn,go-isatty
|
||||||
|
- github.com,shiena,ansicolor
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,mattn,go-isatty
|
||||||
|
project: github.com,mattn,go-isatty
|
||||||
|
- name: github.com,shiena,ansicolor
|
||||||
|
project: github.com,shiena,ansicolor
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandauf/btcjson.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/hlandauf/btcjson"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/hlandauf/btcjson
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,20 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/kr/pretty.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/kr/pretty"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/kr/pretty
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,kr,text
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,kr,text
|
||||||
|
project: github.com,kr,text
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/kr/text.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/kr/text"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/kr/text
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,16 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/mattn/go-isatty.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/mattn/go-isatty"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/mattn/go-isatty
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/miekg/dns.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/miekg/dns"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/miekg/dns
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,17 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/ogier/pflag.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/ogier/pflag"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/ogier/pflag
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,16 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/shiena/ansicolor.git
|
||||||
|
git_hash: '[% config.var_p.id.${"github.com/shiena/ansicolor"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: github.com/shiena/ansicolor
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
[% c("var/set_default_env") -%]
|
||||||
|
[% c("var/setarch") -%]
|
||||||
|
distdir=/var/tmp/dist/[% project %]
|
||||||
|
mkdir -p /var/tmp/dist
|
||||||
|
|
||||||
|
[% IF c("var/linux") %]
|
||||||
|
# Config options for hardening-wrapper
|
||||||
|
export DEB_BUILD_HARDENING=1
|
||||||
|
export DEB_BUILD_HARDENING_STACKPROTECTOR=1
|
||||||
|
export DEB_BUILD_HARDENING_FORTIFY=1
|
||||||
|
export DEB_BUILD_HARDENING_FORMAT=1
|
||||||
|
export DEB_BUILD_HARDENING_PIE=1
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
mkdir -p /var/tmp/build
|
||||||
|
|
||||||
|
# Building go 1.4.x
|
||||||
|
# This is needed to bootstrap the go that we actually use
|
||||||
|
# https://golang.org/doc/install/source#go14
|
||||||
|
tar -C /var/tmp/build --transform='s,^go\>,go1.4,' -xf $rootdir/[% c('input_files_by_name/go14') %]
|
||||||
|
cd /var/tmp/build/go1.4/src
|
||||||
|
# Disable cgo to avoid conflicts with newer GCC. cgo is not needed for the bootstrap go.
|
||||||
|
# https://github.com/golang/go/issues/13114#issuecomment-186922245
|
||||||
|
# Disable CC etc. that are set up for cross builds.
|
||||||
|
CGO_ENABLED=0 CC= CFLAGS= LDFLAGS= ./make.bash
|
||||||
|
export GOROOT_BOOTSTRAP="/var/tmp/build/go1.4"
|
||||||
|
|
||||||
|
cd $rootdir
|
||||||
|
[% IF ! c("var/linux") %]
|
||||||
|
[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
# Building go
|
||||||
|
# http://golang.org/doc/install/source#environment
|
||||||
|
tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/go') %]
|
||||||
|
export GOROOT="$distdir"
|
||||||
|
cd /var/tmp/dist/go/src
|
||||||
|
[% IF c("var/linux") %]
|
||||||
|
./make.bash
|
||||||
|
[% ELSIF c("var/osx") %]
|
||||||
|
# TODO
|
||||||
|
[% ELSIF c("var/windows") %]
|
||||||
|
# TODO
|
||||||
|
[% END -%]
|
||||||
|
|
||||||
|
cd /var/tmp/dist
|
||||||
|
[% c('tar', {
|
||||||
|
tar_src => [ project ],
|
||||||
|
tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
|
||||||
|
}) %]
|
@ -0,0 +1,90 @@
|
|||||||
|
version: 1.11.1
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
var:
|
||||||
|
go14_version: 1.4.3
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
|
||||||
|
setup: |
|
||||||
|
[% c("var/setarch") -%]
|
||||||
|
mkdir -p /var/tmp/dist
|
||||||
|
tar -C /var/tmp/dist -xf $rootdir/[% c("go_tarfile") %]
|
||||||
|
export GOOS=[% c("var/GOOS") %]
|
||||||
|
export GOARCH=[% c("var/GOARCH") %]
|
||||||
|
export GOPATH=/var/tmp/dist/gopath
|
||||||
|
export PATH=/var/tmp/dist/go/bin:/var/tmp/dist/gopath/bin:"$PATH"
|
||||||
|
|
||||||
|
# Template build script for building a go library.
|
||||||
|
# This can be called as projects/go/var/build_go_lib.
|
||||||
|
# You need to define /var/go_lib, and optionally var/go_lib_install as a list
|
||||||
|
# of install targets.
|
||||||
|
build_go_lib: |
|
||||||
|
#!/bin/sh
|
||||||
|
[% c("var/set_default_env") -%]
|
||||||
|
[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
|
||||||
|
distdir=/var/tmp/dist/[% project %]
|
||||||
|
mkdir -p /var/tmp/build
|
||||||
|
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
|
||||||
|
[% FOREACH dep = c("var/go_lib_deps") -%]
|
||||||
|
tar -C /var/tmp/dist -xf [% c('input_files_by_name/' _ dep) %]
|
||||||
|
[% END -%]
|
||||||
|
mkdir -p $(dirname "$GOPATH/src/[% c("var/go_lib") %]")
|
||||||
|
mv /var/tmp/build/[% project %]-[% c('version') %] "$GOPATH/src/[% c("var/go_lib") %]"
|
||||||
|
cd "$GOPATH/src/[% c("var/go_lib") %]"
|
||||||
|
for p in $(ls -1 $rootdir/*.patch 2> /dev/null | sort)
|
||||||
|
do
|
||||||
|
patch -p1 < $p
|
||||||
|
done
|
||||||
|
[% IF c("var/build_go_lib_pre"); GET c("var/build_go_lib_pre"); END; -%]
|
||||||
|
[% IF c("var/go_lib_install") -%]
|
||||||
|
[% FOREACH inst IN c("var/go_lib_install") %]
|
||||||
|
go install [% inst %]
|
||||||
|
[% END %]
|
||||||
|
[% ELSE %]
|
||||||
|
go install [% c("var/go_lib") %]
|
||||||
|
[% END %]
|
||||||
|
cd /var/tmp/dist
|
||||||
|
[% c('tar', {
|
||||||
|
tar_src => [ 'gopath' ],
|
||||||
|
tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
|
||||||
|
}) %]
|
||||||
|
|
||||||
|
targets:
|
||||||
|
windows:
|
||||||
|
var:
|
||||||
|
GOOS: windows
|
||||||
|
windows-i686:
|
||||||
|
var:
|
||||||
|
GOARCH: 386
|
||||||
|
windows-x86_64:
|
||||||
|
var:
|
||||||
|
GOARCH: amd64
|
||||||
|
osx-x86_64:
|
||||||
|
var:
|
||||||
|
GOOS: darwin
|
||||||
|
GOARCH: amd64
|
||||||
|
arch_deps:
|
||||||
|
- faketime
|
||||||
|
linux:
|
||||||
|
var:
|
||||||
|
GOOS: linux
|
||||||
|
linux-x86_64:
|
||||||
|
var:
|
||||||
|
GOARCH: amd64
|
||||||
|
linux-i686:
|
||||||
|
var:
|
||||||
|
GOARCH: 386
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: '[% c("var/compiler") %]'
|
||||||
|
project: '[% c("var/compiler") %]'
|
||||||
|
enable: '[% c("var/windows") || c("var/osx") %]'
|
||||||
|
- URL: 'https://golang.org/dl/go[% c("version") %].src.tar.gz'
|
||||||
|
name: go
|
||||||
|
sha256sum: 558f8c169ae215e25b81421596e8de7572bd3ba824b79add22fba6e284db1117
|
||||||
|
- URL: 'https://golang.org/dl/go[% c("var/go14_version") %].src.tar.gz'
|
||||||
|
name: go14
|
||||||
|
sha256sum: 9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://go.googlesource.com/net
|
||||||
|
git_hash: '[% config.var_p.id.${"golang.org/x/net"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: golang.org/x/net
|
||||||
|
go_lib_install:
|
||||||
|
- golang.org/x/net/context
|
||||||
|
go_lib_deps: []
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,23 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/alecthomas/kingpin.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/alecthomas/kingpin.v2"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/alecthomas/kingpin.v2
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,alecthomas,template
|
||||||
|
- github.com,alecthomas,units
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,alecthomas,template
|
||||||
|
project: github.com,alecthomas,template
|
||||||
|
- name: github.com,alecthomas,units
|
||||||
|
project: github.com,alecthomas,units
|
@ -0,0 +1,16 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/configurable.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/hlandau/configurable.v1"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/hlandau/configurable.v1
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,35 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/easyconfig.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/hlandau/easyconfig.v1"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/hlandau/easyconfig.v1
|
||||||
|
go_lib_deps:
|
||||||
|
- gopkg.in,hlandau,configurable.v1
|
||||||
|
- gopkg.in,hlandau,svcutils.v1
|
||||||
|
- github.com,BurntSushi,toml
|
||||||
|
- github.com,ogier,pflag
|
||||||
|
- gopkg.in,alecthomas,kingpin.v2
|
||||||
|
go_lib_install:
|
||||||
|
- gopkg.in/hlandau/easyconfig.v1
|
||||||
|
- gopkg.in/hlandau/easyconfig.v1/cflag
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: gopkg.in,hlandau,configurable.v1
|
||||||
|
project: gopkg.in,hlandau,configurable.v1
|
||||||
|
- name: gopkg.in,hlandau,svcutils.v1
|
||||||
|
project: gopkg.in,hlandau,svcutils.v1
|
||||||
|
- name: github.com,BurntSushi,toml
|
||||||
|
project: github.com,BurntSushi,toml
|
||||||
|
- name: github.com,ogier,pflag
|
||||||
|
project: github.com,ogier,pflag
|
||||||
|
- name: gopkg.in,alecthomas,kingpin.v2
|
||||||
|
project: gopkg.in,alecthomas,kingpin.v2
|
@ -0,0 +1,29 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/madns.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/hlandau/madns.v1"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/hlandau/madns.v1
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,miekg,dns
|
||||||
|
- github.com,hlandau,buildinfo
|
||||||
|
- github.com,hlandau,xlog
|
||||||
|
go_lib_install:
|
||||||
|
- gopkg.in/hlandau/madns.v1
|
||||||
|
- gopkg.in/hlandau/madns.v1/merr
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,miekg,dns
|
||||||
|
project: github.com,miekg,dns
|
||||||
|
- name: github.com,hlandau,buildinfo
|
||||||
|
project: github.com,hlandau,buildinfo
|
||||||
|
- name: github.com,hlandau,xlog
|
||||||
|
project: github.com,hlandau,xlog
|
@ -0,0 +1,29 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/service.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/hlandau/service.v2"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/hlandau/service.v2
|
||||||
|
go_lib_deps:
|
||||||
|
- gopkg.in,hlandau,svcutils.v1
|
||||||
|
- gopkg.in,hlandau,easyconfig.v1
|
||||||
|
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
var:
|
||||||
|
arch_deps:
|
||||||
|
- libcap-dev
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: gopkg.in,hlandau,svcutils.v1
|
||||||
|
project: gopkg.in,hlandau,svcutils.v1
|
||||||
|
- name: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
project: gopkg.in,hlandau,easyconfig.v1
|
@ -0,0 +1,22 @@
|
|||||||
|
version: '[% c("abbrev") %]'
|
||||||
|
git_url: https://github.com/hlandau/svcutils.git
|
||||||
|
git_hash: '[% config.var_p.id.${"gopkg.in/hlandau/svcutils.v1"} %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
build: '[% c("projects/go/var/build_go_lib") %]'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib: gopkg.in/hlandau/svcutils.v1
|
||||||
|
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
var:
|
||||||
|
arch_deps:
|
||||||
|
- libcap-dev
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[% c("var/set_default_env") -%]
|
||||||
|
[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
|
||||||
|
distdir=/var/tmp/dist/[% project %]
|
||||||
|
mkdir -p $distdir
|
||||||
|
|
||||||
|
[% FOREACH dep = c("var/go_lib_deps") -%]
|
||||||
|
tar -C /var/tmp/dist -xf [% c('input_files_by_name/' _ dep) %]
|
||||||
|
[% END -%]
|
||||||
|
|
||||||
|
mkdir -p $GOPATH/src/github.com/namecoin
|
||||||
|
tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.gz
|
||||||
|
mv $GOPATH/src/github.com/namecoin/ncdns-[% c('version') %] $GOPATH/src/github.com/namecoin/ncdns
|
||||||
|
|
||||||
|
go generate github.com/namecoin/ncdns/x509
|
||||||
|
go install -ldflags '-s' github.com/namecoin/ncdns/...
|
||||||
|
|
||||||
|
#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/github.com/namecoin"
|
||||||
|
#ln -sf "$PWD" "$GOPATH/src/github.com/namecoin/ncdns"
|
||||||
|
|
||||||
|
#mkdir -p out
|
||||||
|
#cd out
|
||||||
|
#for x in .. ../ncdumpzone ../generate_nmc_cert; do
|
||||||
|
# go build -ldflags '-s' "$x"
|
||||||
|
#done
|
||||||
|
|
||||||
|
ls $GOPATH/bin
|
||||||
|
|
||||||
|
for x in ncdns ncdumpzone ncdt generate_nmc_cert tlsrestrict_chromium_tool; do
|
||||||
|
cp -a $GOPATH/bin/"$x"[% IF c("var/windows") %].exe[% END %] $distdir/
|
||||||
|
done
|
||||||
|
|
||||||
|
cd $distdir
|
||||||
|
[% c('tar', {
|
||||||
|
tar_src => [ '.' ],
|
||||||
|
tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
|
||||||
|
}) %]
|
@ -0,0 +1,55 @@
|
|||||||
|
version: 0.0.8
|
||||||
|
git_url: https://github.com/namecoin/ncdns.git
|
||||||
|
git_hash: 'v[% c("version") %]'
|
||||||
|
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
|
||||||
|
|
||||||
|
var:
|
||||||
|
container:
|
||||||
|
use_container: 1
|
||||||
|
go_lib_deps:
|
||||||
|
- github.com,golang,groupcache
|
||||||
|
- github.com,hlandau,degoutils
|
||||||
|
- github.com,hlandau,dexlogconfig
|
||||||
|
- github.com,hlandau,ncbtcjsontypes
|
||||||
|
- github.com,hlandauf,btcjson
|
||||||
|
- github.com,kr,pretty
|
||||||
|
- github.com,miekg,dns
|
||||||
|
- gopkg.in,hlandau,madns.v1
|
||||||
|
- gopkg.in,hlandau,easyconfig.v1
|
||||||
|
- gopkg.in,hlandau,service.v2
|
||||||
|
- golang.org,x,net
|
||||||
|
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
var:
|
||||||
|
arch_deps:
|
||||||
|
- libcap-dev
|
||||||
|
|
||||||
|
input_files:
|
||||||
|
- project: container-image
|
||||||
|
- name: go
|
||||||
|
project: go
|
||||||
|
- name: github.com,hlandau,xlog
|
||||||
|
project: github.com,hlandau,xlog
|
||||||
|
- name: github.com,hlandau,dexlogconfig
|
||||||
|
project: github.com,hlandau,dexlogconfig
|
||||||
|
- name: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
project: gopkg.in,hlandau,easyconfig.v1
|
||||||
|
- name: gopkg.in,hlandau,service.v2
|
||||||
|
project: gopkg.in,hlandau,service.v2
|
||||||
|
- name: github.com,golang,groupcache
|
||||||
|
project: github.com,golang,groupcache
|
||||||
|
- name: github.com,hlandau,ncbtcjsontypes
|
||||||
|
project: github.com,hlandau,ncbtcjsontypes
|
||||||
|
- name: github.com,hlandauf,btcjson
|
||||||
|
project: github.com,hlandauf,btcjson
|
||||||
|
- name: github.com,miekg,dns
|
||||||
|
project: github.com,miekg,dns
|
||||||
|
- name: gopkg.in,hlandau,madns.v1
|
||||||
|
project: gopkg.in,hlandau,madns.v1
|
||||||
|
- name: github.com,kr,pretty
|
||||||
|
project: github.com,kr,pretty
|
||||||
|
- name: github.com,hlandau,degoutils
|
||||||
|
project: github.com,hlandau,degoutils
|
||||||
|
- name: golang.org,x,net
|
||||||
|
project: golang.org,x,net
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit eb500fa9467fb4d7229c9ca87f202ef18603d023
|
@ -0,0 +1,180 @@
|
|||||||
|
debug: '[% GET ! ENV.RBM_NO_DEBUG %]'
|
||||||
|
compress_tar: gz
|
||||||
|
output_dir: 'out/[% project %]'
|
||||||
|
tmp_dir: '[% c("basedir") %]/tmp'
|
||||||
|
_build_log: 'logs/[% project %][% IF c("var/osname") %]-[% c("var/osname") %][% END %].log'
|
||||||
|
pkg_type: build
|
||||||
|
|
||||||
|
var:
|
||||||
|
sort_deps: 1
|
||||||
|
build_id: '[% sha256(c("var/build_id_txt", { buildconf => { num_procs => 4 } })).substr(0, 6) %]'
|
||||||
|
build_id_txt: |
|
||||||
|
[% c("version") %]
|
||||||
|
[% IF c("git_hash") || c("hg_hash"); GET c("abbrev"); END; %]
|
||||||
|
[% IF c("var/container/use_container") -%]
|
||||||
|
[% c("var/container/suite") %]
|
||||||
|
[% c("var/container/arch") %]
|
||||||
|
[% END -%]
|
||||||
|
input_files: [% c("input_files_id") %]
|
||||||
|
build:
|
||||||
|
[% c("build", { filename => 'f', output_dir => '/out' }) %]
|
||||||
|
container:
|
||||||
|
dir: '[% c("rbm_tmp_dir") %]/rbm-containers/[% sha256(c("build_id")) %]'
|
||||||
|
user: rbm
|
||||||
|
input_files_list: |
|
||||||
|
[% FOREACH file IN c("input_files_by_name").keys.sort -%]
|
||||||
|
[% c("input_files_by_name/" _ file) %]
|
||||||
|
[% END -%]
|
||||||
|
set_default_env: |
|
||||||
|
set -e
|
||||||
|
[% FOREACH env = c('ENV') -%]
|
||||||
|
export [% env.key %]="[% env.value %]"
|
||||||
|
[% END -%]
|
||||||
|
rootdir=$(pwd)
|
||||||
|
export SHELL=/bin/sh
|
||||||
|
export HOME=$rootdir
|
||||||
|
umask 0022
|
||||||
|
|
||||||
|
targets:
|
||||||
|
notarget: linux-x86_64
|
||||||
|
noint:
|
||||||
|
debug: 0
|
||||||
|
|
||||||
|
ncdns-linux-x86_64:
|
||||||
|
- linux-x86_64
|
||||||
|
- linux
|
||||||
|
linux-x86_64:
|
||||||
|
arch: x86_64
|
||||||
|
var:
|
||||||
|
linux-x86_64: 1
|
||||||
|
osname: linux-x86_64
|
||||||
|
container:
|
||||||
|
arch: amd64
|
||||||
|
linux:
|
||||||
|
var:
|
||||||
|
linux: 1
|
||||||
|
compiler: gcc
|
||||||
|
container:
|
||||||
|
suite: wheezy
|
||||||
|
deps:
|
||||||
|
- build-essential
|
||||||
|
- zip
|
||||||
|
- unzip
|
||||||
|
|
||||||
|
remote_start: '[% IF c("var/container/use_container") %][% c("runc/remote_start") %][% END %]'
|
||||||
|
remote_exec: '[% IF c("var/container/use_container") %][% c("runc/remote_exec") %][% END %]'
|
||||||
|
remote_put: '[% IF c("var/container/use_container") %][% c("runc/remote_put") %][% END %]'
|
||||||
|
remote_get: '[% IF c("var/container/use_container") %][% c("runc/remote_get") %][% END %]'
|
||||||
|
remote_finish: '[% IF c("var/container/use_container") %][% c("runc/remote_finish") %][% END %]'
|
||||||
|
|
||||||
|
runc:
|
||||||
|
remote_start: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
if [ $(ls -1 '[% c("remote_srcdir", { error_if_undef => 1 }) %]/container-image_'* | wc -l) -ne 1 ]
|
||||||
|
then
|
||||||
|
echo "Can't find container image in input files" >&2
|
||||||
|
ls -l '[% c("remote_srcdir") %]' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mkdir -p '[% c("var/container/dir") %]'/rootfs/rbm
|
||||||
|
sudo tar -C '[% c("var/container/dir") %]'/rootfs -xf $(ls -1 '[% c("remote_srcdir", { error_if_undef => 1 }) %]/container-image_'*)
|
||||||
|
[% SET user = c("var/container/user") -%]
|
||||||
|
[% c("remote_exec", { exec_as_root => 1, exec_cmd => 'id ' _ user
|
||||||
|
_ ' >/dev/null 2>&1 || adduser -m ' _ user _ ' || useradd -m ' _ user }) %]
|
||||||
|
|
||||||
|
remote_exec: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
[% IF c("interactive") -%]
|
||||||
|
echo Container directory: [% shell_quote(c("var/container/dir")) %]
|
||||||
|
[% END -%]
|
||||||
|
mkdir -p '[% c("var/container/dir", { error_if_undef => 1 }) %]'/rootfs/rbm
|
||||||
|
echo '#!/bin/sh' > '[% c("var/container/dir") %]'/rootfs/rbm/cmd
|
||||||
|
echo [% shell_quote(c('exec_cmd')) %] >> '[% c("var/container/dir") %]'/rootfs/rbm/cmd
|
||||||
|
echo '#!/bin/sh' > '[% c("var/container/dir") %]'/rootfs/rbm/run
|
||||||
|
[% IF c('exec_as_root'); SET user = 'root'; ELSE; SET user = c("var/container/user", { error_if_undef => 1 }); END; %]
|
||||||
|
echo 'su - [% user %] -c /rbm/cmd' >> '[% c("var/container/dir") %]'/rootfs/rbm/run
|
||||||
|
chmod +x '[% c("var/container/dir") %]'/rootfs/rbm/cmd
|
||||||
|
chmod +x '[% c("var/container/dir") %]'/rootfs/rbm/run
|
||||||
|
cat > '[% c("var/container/dir") %]'/config.json <<EOF
|
||||||
|
[% INCLUDE 'runc-config.json' %]
|
||||||
|
EOF
|
||||||
|
sudo runc [% IF c("var_p/runc100") %]run[% ELSE %]start[% END %] -b '[% c("var/container/dir") %]' rbm-[% sha256(c("build_id", { error_if_undef => 1 })) %] [% IF c("runc_hide_stderr") %]2>/dev/null[% END %]
|
||||||
|
|
||||||
|
remote_put: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
[%
|
||||||
|
SET src = shell_quote(c('put_src', { error_if_undef => 1 }));
|
||||||
|
SET dst = shell_quote(c('put_dst', { error_if_undef => 1 }));
|
||||||
|
-%]
|
||||||
|
sudo mkdir -p '[% c("var/container/dir") %]'/rootfs/[% dst %]
|
||||||
|
sudo cp -aP [% src %] '[% c("var/container/dir") %]'/rootfs/[% dst %]
|
||||||
|
# On Ubuntu, the /root/.profile file contains a `mesg n` line which is
|
||||||
|
# producing some `stdin: is not a tty` messages. To hide them, we hide
|
||||||
|
# stderr from this part by setting runc_hide_stderr.
|
||||||
|
[% c("remote_exec", { exec_as_root => 1, exec_cmd => 'chown -R ' _ c("var/container/user") _ ' ' _ dst, runc_hide_stderr => 1 }) %]
|
||||||
|
|
||||||
|
remote_get: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
[%
|
||||||
|
SET src = shell_quote(c('get_src', { error_if_undef => 1 }));
|
||||||
|
SET dst = shell_quote(c('get_dst', { error_if_undef => 1 }));
|
||||||
|
-%]
|
||||||
|
mkdir -p [% dst %]
|
||||||
|
srcdir='[% c("var/container/dir", { error_if_undef => 1 }) %]'/rootfs/[% src %]
|
||||||
|
sudo chown -R $(whoami) "$srcdir"
|
||||||
|
if [ $(ls -1 "$srcdir"/* 2> /dev/null | wc -l) -gt 0 ]
|
||||||
|
then
|
||||||
|
for file in "$srcdir"/*
|
||||||
|
do
|
||||||
|
bname="$(basename "$file")"
|
||||||
|
test -e [% dst %]/"$bname" && rm -Rf [% dst %]/"$bname"
|
||||||
|
mv -f "$file" [% dst %]/
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
remote_finish: |
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
sudo rm -Rf '[% c("var/container/dir", { error_if_undef => 1 }) %]'/rootfs '[% c("var/container/dir", { error_if_undef => 1 }) %]'/config.json
|
||||||
|
rmdir '[% c("var/container/dir") %]'
|
||||||
|
|
||||||
|
ENV:
|
||||||
|
TZ: UTC
|
||||||
|
LC_ALL: C
|
||||||
|
--- |
|
||||||
|
# This part of the file contains options written in perl
|
||||||
|
use IO::CaptureOutput qw(capture_exec);
|
||||||
|
|
||||||
|
my $hashlist = {};
|
||||||
|
open(my $f, '<:encoding(UTF-8)', 'hashlist') or die "Cannot open hashlist";
|
||||||
|
while (my $row = <$f>) {
|
||||||
|
chomp $row;
|
||||||
|
my @words = split / /, $row;
|
||||||
|
my $repo = $words[1];
|
||||||
|
my $hash = $words[2];
|
||||||
|
$hashlist->{$repo} = $hash;
|
||||||
|
#print "$repo = $hash\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
(
|
||||||
|
var_p => {
|
||||||
|
# runc100 is true if we are using runc >= 1.0.0
|
||||||
|
# we assume that any version that is not 0.1.1 is >= 1.0.0
|
||||||
|
runc100 => sub {
|
||||||
|
my ($out) = capture_exec('sudo', 'runc', '--version');
|
||||||
|
return !($out =~ m/^runc version 0.1.1/);
|
||||||
|
},
|
||||||
|
# runc_spec100 is true if runc spec is at least 1.0.0
|
||||||
|
# We will need to update this when there is a new spec version available
|
||||||
|
runc_spec100 => sub {
|
||||||
|
my ($out) = capture_exec('sudo', 'runc', '--version');
|
||||||
|
return $out =~ m/^.*spec: 1\.[0-9]+\.[0-9]+$/m;
|
||||||
|
},
|
||||||
|
|
||||||
|
id => $hashlist,
|
||||||
|
},
|
||||||
|
)
|
Loading…
Reference in New Issue