mid-kid
7 years ago
3 changed files with 189 additions and 0 deletions
@ -0,0 +1,152 @@ |
|||
# NOTE: Docker uses their own versions of several programs, installed as docker-* |
|||
# They could be installed separately, and linked with their docker-* names, |
|||
# but docker is very picky about exactly which commit of these it's running. |
|||
# As such, I will bundle the docker-specific versions in this package, |
|||
# instead of spreading them over multiple packages. |
|||
|
|||
# The exact commit number for these programs is specified in |
|||
# components/engine/hack/dockerfile/binaries-commits in the docker archive. |
|||
|
|||
name=docker |
|||
version=17.06.2-ce |
|||
version_runc=810190ceaa507aa2727d7ae6f4790c76ec150bd2 |
|||
version_containerd=6e23458c129b551d5c9871e5174f6b1b7f6d1170 |
|||
version_tini=949e6facb77383876aeff8a6944dde66b3089574 |
|||
version_libnetwork=7b2b1feb1de4817d522cc372af149ff48d25028e |
|||
update_url="https://github.com/$name/$name-ce/releases" |
|||
update_names="/archive/v$version.tar.gz" |
|||
|
|||
dlextract "https://github.com/$name/$name-ce/archive/v$version/$name-$version.tar.gz" \ |
|||
'45f92308bd542b6a8344c490d0383b64' |
|||
dlextract "https://github.com/$name/runc/archive/$version_runc/runc-$version_runc.tar.gz" \ |
|||
'd2d5d628662bfbe11fd0d1bb7eb1c63c' |
|||
dlextract "https://github.com/$name/containerd/archive/$version_containerd/containerd-$version_containerd.tar.gz" \ |
|||
'd1d057d831d46021cefee3a3c52c6c65' |
|||
dlextract "https://github.com/krallin/tini/archive/$version_tini/tini-$version_tini.tar.gz" \ |
|||
'9873191fc835a79cb94b24377391667e' |
|||
dlextract "https://github.com/$name/libnetwork/archive/$version_libnetwork/libnetwork-$version_libnetwork.tar.gz" \ |
|||
'9360e38c43e862e42c128db1852ac5bb' |
|||
_ |
|||
|
|||
# Verify that the dependency programs' versions match |
|||
# This should avoid the packager to have to manually check the file every update |
|||
( |
|||
. "$name-ce-$version/components/engine/hack/dockerfile/binaries-commits" |
|||
mismatches="" |
|||
for dependency in runc containerd tini libnetwork; do |
|||
if [ "$(eval echo \${version_$dependency})" != \ |
|||
"$(eval echo \${$(echo $dependency | tr a-z A-Z)_COMMIT})" ]; then |
|||
mismatches+="$dependency: $(eval echo \${$(echo $dependency | tr a-z A-Z)_COMMIT}) |
|||
" |
|||
fi |
|||
done |
|||
|
|||
if [ "$mismatches" ]; then |
|||
echo "Error: Mismatching commit for one or more dependencies" |
|||
printf "%s" "$mismatches" |
|||
exit 1 |
|||
fi |
|||
) |
|||
|
|||
# Some scripts apparently like to pick up and misuse LDFLAGS for go |
|||
unset LDFLAGS |
|||
|
|||
# Set up a fake GOPATH |
|||
mkdir -p ".gopath/src/github.com/$name" \ |
|||
'.gopath/src/github.com/opencontainers' \ |
|||
'.gopath/src/github.com/containerd' |
|||
ln -rs "$name-ce-$version/components/cli" ".gopath/src/github.com/$name/cli" |
|||
ln -rs "$name-ce-$version/components/engine" ".gopath/src/github.com/$name/$name" |
|||
ln -rs "runc-$version_runc" '.gopath/src/github.com/opencontainers/runc' |
|||
ln -rs "containerd-$version_containerd" '.gopath/src/github.com/containerd/containerd' |
|||
ln -rs "libnetwork-$version_libnetwork" ".gopath/src/github.com/$name/libnetwork" |
|||
export GOPATH="$PWD/.gopath" |
|||
|
|||
# Build engine |
|||
( cd "$name-ce-$version/components/engine" |
|||
DOCKER_GITCOMMIT="$version" \ |
|||
DOCKER_BUILDTAGS='seccomp' \ |
|||
hack/make.sh dynbinary |
|||
) |
|||
|
|||
# Build cli |
|||
( cd "$name-ce-$version/components/cli" |
|||
make VERSION="$version" dynbinary |
|||
|
|||
mkdir -p man/man1 |
|||
go build -v -o gen-manpages "github.com/$name/cli/man" |
|||
./gen-manpages --root . --target man/man1 |
|||
|
|||
if command -v go-md2man 2> /dev/null; then |
|||
./man/md2man-all.sh -q |
|||
fi |
|||
) |
|||
|
|||
# Build runc |
|||
( cd "$GOPATH/src/github.com/opencontainers/runc" |
|||
make BUILDTAGS='seccomp' \ |
|||
GIT_BRANCH=HEAD \ |
|||
COMMIT_NO="$version_runc" \ |
|||
COMMIT="$version_runc" |
|||
) |
|||
|
|||
# Build containerd |
|||
make -C "containerd-$version_containerd" |
|||
|
|||
# Build tini |
|||
( cd "tini-$version_tini" |
|||
cmake . |
|||
make tini-static |
|||
) |
|||
|
|||
# Build proxy |
|||
( cd "libnetwork-$version_libnetwork" |
|||
go build -v -ldflags="-linkmode=external" -o proxy ./cmd/proxy |
|||
) |
|||
|
|||
# Install engine |
|||
( cd "$name-ce-$version/components/engine" |
|||
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bin" "bundles/latest/dynbinary-daemon/${name}d" |
|||
|
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_data/vim/vimfiles/syntax" \ |
|||
contrib/syntax/vim/syntax/dockerfile.vim |
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_data/vim/vimfiles/ftdetect" \ |
|||
contrib/syntax/vim/ftdetect/dockerfile.vim |
|||
) |
|||
|
|||
# Install cli |
|||
( cd "$name-ce-$version/components/cli" |
|||
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bin" "build/$name" |
|||
|
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_data/bash-completion/completions" \ |
|||
"contrib/completion/bash/$name" |
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_data/zsh/site-functions" \ |
|||
"contrib/completion/zsh/_$name" |
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_data/fish/vendor_completions.d" \ |
|||
"contrib/completion/fish/$name.fish" |
|||
|
|||
mkdir -p "$dir_install/$dir_prefix/$dir_man" |
|||
cp -at "$dir_install/$dir_prefix/$dir_man" man/man* |
|||
) |
|||
|
|||
# Install runc |
|||
install -Dm755 "runc-$version_runc/runc" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-runc" |
|||
|
|||
# Install containerd |
|||
install -Dm755 "containerd-$version_containerd/bin/containerd" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-containerd" |
|||
install -Dm755 "containerd-$version_containerd/bin/containerd-shim" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-containerd-shim" |
|||
install -Dm755 "containerd-$version_containerd/bin/ctr" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-containerd-ctr" |
|||
|
|||
# Install tini |
|||
install -Dm755 "tini-$version_tini/tini-static" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-init" |
|||
|
|||
# Install proxy |
|||
install -Dm755 "libnetwork-$version_libnetwork/proxy" \ |
|||
"$dir_install/$dir_prefix/$dir_bin/$name-proxy" |
|||
|
|||
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab: |
@ -0,0 +1,23 @@ |
|||
name=go-md2man |
|||
version=1.0.7 |
|||
update_url="https://github.com/cpuguy83/$name/releases" |
|||
update_names="/archive/v$version.tar.gz" |
|||
|
|||
dlextract "https://github.com/cpuguy83/$name/archive/v$version/$name-$version.tar.gz" \ |
|||
'2282a7a24635c63ca7bb08b5e07282fc' |
|||
_ |
|||
|
|||
# Set up a fake GOPATH |
|||
mkdir -p '.gopath/src/github.com/cpuguy83' |
|||
ln -rs "$name-$version" ".gopath/src/github.com/cpuguy83/$name" |
|||
export GOPATH="$PWD/.gopath" |
|||
|
|||
cd "$name-$version" |
|||
|
|||
go build -v -o "$name" |
|||
"./$name" -in="$name.1.md" -out="$name.1" |
|||
|
|||
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bin" "$name" |
|||
install -Dm644 -t "$dir_install/$dir_prefix/$dir_man/man1" "$name.1" |
|||
|
|||
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab: |
@ -0,0 +1,14 @@ |
|||
import 'compile/configure' |
|||
|
|||
name=libseccomp |
|||
version=2.3.2 |
|||
update_url="https://github.com/seccomp/$name/releases" |
|||
|
|||
dlextract "https://github.com/seccomp/$name/releases/download/v$version/$name-$version.tar.gz" \ |
|||
'e74a626bea0cd607c23229b10b5f93da' |
|||
_ |
|||
|
|||
cd "$name-$version" |
|||
compile_configure |
|||
|
|||
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab: |
Loading…
Reference in new issue