description='An open platform for distributed applications for developers and sysadmins'
url='https://www.docker.com/community-edition'

contributors="MattHoush,Spiky,Tnut"
packager="Spiky <spiky@nutyx.org>"

makedepends=(lvm2 btrfs-progs)

run=(start-stop-daemon iptables runc containerd cgroupfs-mount)

name=docker
version=20.10.21

PKGMK_GROUPS=(man)

source=(https://github.com/moby/moby/archive/v${version}/moby-${version}.tar.gz \
    https://github.com/docker/cli/archive/v${version}/cli-${version}.tar.gz \
    http://jaeger.morpheus.net/linux/crux/files/$name-man-pages-$version.tar.xz \
    http://jaeger.morpheus.net/linux/crux/files/libnetwork-64b7a45.tar.xz \
    $name $name.conf)

build() {
    export PATH=/usr/lib/go/bin:$PATH
    export GO111MODULE=auto
    export GOPATH=$SRC
    export DOCKER_GITCOMMIT=847da18
    export DOCKER_BUILDTAGS='seccomp'
    export DISABLE_WARN_OUTSIDE_CONTAINER=1

    mkdir -p src/github.com/docker

    pushd src/github.com/docker
    ln -s $SRC/cli-$version cli
    pushd cli
    make VERSION=$version dynbinary
    popd
    popd

    pushd src/github.com/docker
    ln -s $SRC/moby-$version docker
    pushd docker
    VERSION=$version hack/make.sh dynbinary
    popd
    popd

    install -D -m 0755 cli-$version/build/$name $PKG/usr/bin/$name
    install -D -m 0755 moby-$version/bundles/dynbinary-daemon/dockerd-$version \
        $PKG/usr/bin/dockerd

    (cd ..; \
        GOROOT=/usr/lib/go GOPATH=${PKGMK_WORK_DIR} go build -o $PKG/usr/bin/$name-proxy \
            libnetwork-64b7a45/cmd/proxy)

    for M in 1 5 8; do
        install -d -m 0755 $PKG/usr/share/man/man${M}
        install -m 0644 $SRC/man${M}/* $PKG/usr/share/man/man${M}/
    done

    install -D -m 0755 $SRC/$name \
        $PKG/etc/rc.d/init.d/$name
    install -D -m 0644 $SRC/$name.conf \
        $PKG/etc/$name.conf

    ln -s containerd $PKG/usr/bin/docker-containerd
    ln -s containerd-shim $PKG/usr/bin/docker-containerd-shim
    ln -s ctr $PKG/usr/bin/docker-containerd-ctr
    ln -s runc $PKG/usr/bin/docker-runc

    install -D -m 0755 moby-$version/contrib/check-config.sh \
        $PKG/usr/share/$name/check-config.sh
    install -D -m 0644 moby-$version/contrib/udev/80-$name.rules \
        $PKG/etc/udev/rules.d/80-$name.rules
    install -D -m 0644 cli-$version/contrib/completion/bash/docker \
        $PKG/etc/bash_completion.d/docker

    # service
    install -D -m 0755 $SRC/$name \
        $PKG/etc/rc.d/init.d/$name

    for i in 3 4 5
    do
      mkdir -p $PKG/etc/rc.d/rc$i.d
      ln -sv ../init.d/$name $PKG/etc/rc.d/rc$i.d/S45$name
    done
    for i in 0 1 6
    do
      mkdir -p $PKG/etc/rc.d/rc$i.d
      ln -sv ../init.d/$name $PKG/etc/rc.d/rc$i.d/K10$name
    done

   mkdir -p $PKG/lib/systemd/system
   install -Dm644  moby-$version/contrib/init/systemd/docker.service \
     $PKG/lib/systemd/system/docker.service
   install -Dm644  moby-$version/contrib/init/systemd/docker.socket \
     $PKG/lib/systemd/system/docker.socket

}
