diff --git a/docker.spec b/docker.spec index 206aea2..3a6dc18 100644 --- a/docker.spec +++ b/docker.spec @@ -1,28 +1,36 @@ %define groupid 65440 %define userid 65440 +%define runc_tag v1.0.0-rc5 +%define containerd_tag v1.0.3 +%define libnetwork_tag master +%define tini_tag v0.13.0 + Name: docker -Version: 1.11.1 -Release: 3mamba +Version: 18.05.0 +Release: 1mamba Summary: An open-source application container engine Group: System/Servers Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco URL: http://www.docker.com/ -## GITSOURCE https://github.com/docker/docker.git v1.9.1 -Source: https://github.com/docker/docker.git/v%{version}/docker-%{version}.tar.bz2 +Source: https://github.com/docker/docker-ce.git/v%{version}-ce/docker-ce-%{version}.tar.bz2 +Source1: https://github.com/opencontainers/runc.git/%{runc_tag}/runc-%{version}.tar.bz2 +Source2: https://github.com/containerd/containerd.git/%{containerd_tag}/containerd-%{version}.tar.bz2 +Source3: https://github.com/docker/libnetwork.git/%{libnetwork_tag}/libnetwork-%{version}.tar.bz2 +Source4: https://github.com/krallin/tini.git/%{tini_tag}/tini-%{version}.tar.bz2 Patch0: docker-1.9.1-build-missing-flags.patch License: Apache License 2.0 ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel BuildRequires: libdevmapper-devel -BuildRequires: libgcc -BuildRequires: libgo-devel +BuildRequires: libltdl-devel +BuildRequires: libseccomp-devel BuildRequires: libsystemd-devel ## AUTOBUILDREQ-END BuildRequires: libgo-devel >= 7.3.0-1mamba BuildRequires: go-md2man -BuildRequires: go-pie +BuildRequires: go %systemd_requires Requires: containerd Requires: runc @@ -34,42 +42,127 @@ An open-source application container engine. %debug_package %prep -%setup -q -%patch0 -p1 +%setup -q -n docker-ce-%{version} -a1 -a2 -a3 -a4 +#%patch0 -p1 +mv containerd-%{version} containerd +mv runc-%{version} runc +mv libnetwork-%{version} libnetwork +mv tini-%{version} tini %build -export AUTO_GOPATH=1 -export DOCKER_GITCOMMIT=1 +# create a fake go path directory and pushd into it +# $1 real directory +# $2 gopath directory +_fake_gopath_pushd() { + mkdir -p "$GOPATH/src/${2%/*}" + rm -f "$GOPATH/src/$2" + ln -rsT "$1" "$GOPATH/src/$2" + pushd "$GOPATH/src/$2" >/dev/null +} -hack/make.sh dynbinary -# man pages -man/md2man-all.sh +_fake_gopath_popd() { + popd >/dev/null +} + +srcdir=`pwd` +### globals +export GOPATH="$srcdir" +export PATH="$GOPATH/bin:$PATH" + +### cli +_fake_gopath_pushd components/cli github.com/docker/cli +DISABLE_WARN_OUTSIDE_CONTAINER=1 make VERSION=%{version}-ce dynbinary +_fake_gopath_popd + +### daemon +_fake_gopath_pushd components/engine github.com/docker/docker +DOCKER_GITCOMMIT=v%{version} \ +DOCKER_BUILDTAGS='seccomp journald' \ + VERSION=%{version}-ce \ + hack/make.sh dynbinary +_fake_gopath_popd + +### docker man pages +mkdir -p src/github.com/spf13 +ln -rsfT cobra src/github.com/spf13/cobra +# use docker-ce cli version because they mess up with man dir +_fake_gopath_pushd components/cli github.com/docker/cli +make manpages 2>/dev/null +_fake_gopath_popd + +### runc +_fake_gopath_pushd runc github.com/opencontainers/runc +make BUILDTAGS='seccomp' +_fake_gopath_popd + +### containerd +_fake_gopath_pushd containerd github.com/containerd/containerd +make +_fake_gopath_popd + +### docker proxy +_fake_gopath_pushd libnetwork github.com/docker/libnetwork +go build -ldflags='-linkmode=external' github.com/docker/libnetwork/cmd/proxy +_fake_gopath_popd + +### docker-init +_fake_gopath_pushd tini github.com/krallin/tini +cmake . +# we must use the static binary because it's started in a foreign os +make tini-static +_fake_gopath_popd %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" -install -D -m755 bundles/%{version}/dynbinary/docker-%{version} %{buildroot}%{_bindir}/docker -#install -D -m755 bundles/%{version}/dynbinary/dockerinit-%{version} %{buildroot}%{_libdir}/docker/dockerinit -# completion -install -D -m644 contrib/completion/bash/docker %{buildroot}%{_datadir}/bash-completion/completions/docker -install -D -m644 contrib/completion/zsh/_docker %{buildroot}%{_datadir}/zsh/site-functions/_docker -install -D -m644 contrib/completion/fish/docker.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/docker.fish -# systemd -install -D -m644 contrib/init/systemd/docker.service %{buildroot}%{_unitdir}/docker.service -install -D -m644 contrib/init/systemd/docker.socket %{buildroot}%{_unitdir}/docker.socket -#install -D -m644 "$srcdir/$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" -# vim syntax -install -D -m644 contrib/syntax/vim/syntax/dockerfile.vim %{buildroot}%{_datadir}/vim/vimfiles/syntax/dockerfile.vim -install -D -m644 contrib/syntax/vim/ftdetect/dockerfile.vim %{buildroot}%{_datadir}/vim/vimfiles/ftdetect/dockerfile.vim -# man -install -d -m755 %{buildroot}%{_mandir} -cp -a man/man* %{buildroot}%{_mandir}/ +srcdir=`pwd` -# symlink containerd/run (nice integration...) -ln -s containerd %{buildroot}%{_bindir}/docker-containerd -ln -s containerd-shim %{buildroot}%{_bindir}/docker-containerd-shim -ln -s ctr %{buildroot}%{_bindir}/docker-containerd-ctr -ln -s runc %{buildroot}%{_bindir}/docker-runc +### runc +install -Dm755 runc/runc %{buildroot}%{_bindir}/docker-runc +### containerd +install -Dm755 containerd/bin/containerd %{buildroot}%{_bindir}/docker-containerd +install -Dm755 containerd/bin/containerd-shim \ + %{buildroot}%{_bindir}/docker-containerd-shim +install -Dm755 containerd/bin/ctr %{buildroot}%{_bindir}/docker-containerd-ctr + +### engine +cd $srcdir/components/engine +# binary +install -Dm755 {bundles/latest/dynbinary-daemon,%{buildroot}%{_bindir}}/dockerd +# systemd +install -Dm644 'contrib/init/systemd/docker.service' \ + %{buildroot}%{_unitdir}/docker.service +install -Dm644 'contrib/init/systemd/docker.socket' \ + %{buildroot}%{_unitdir}/docker.socket +install -Dm644 'contrib/udev/80-docker.rules' \ + %{buildroot}%{_udevrulesdir}/80-docker.rules +#install -Dm644 "$srcdir/$pkgname.sysusers" \ +# "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" +# vim syntax +install -Dm644 'contrib/syntax/vim/syntax/dockerfile.vim' \ + %{buildroot}%{_datadir}/vim/vimfiles/syntax/dockerfile.vim +install -Dm644 'contrib/syntax/vim/ftdetect/dockerfile.vim' \ + %{buildroot}%{_datadir}/vim/vimfiles/ftdetect/dockerfile.vim +### cli +cd $srcdir/components/cli +# binary +install -Dm755 build/docker %{buildroot}%{_bindir}/docker +# completion +install -Dm644 'contrib/completion/bash/docker' \ + %{buildroot}%{_datadir}/bash-completion/completions/docker +install -Dm644 'contrib/completion/zsh/_docker' \ + %{buildroot}%{_datadir}/zsh/site-functions/_docker +install -Dm644 'contrib/completion/fish/docker.fish' \ + %{buildroot}%{_datadir}/fish/vendor_completions.d/docker.fish +# man +install -dm755 %{buildroot}%{_mandir} +cp -r man/man* %{buildroot}%{_mandir}/ + +## symlink containerd/run (nice integration...) +#ln -s containerd %{buildroot}%{_bindir}/docker-containerd +#ln -s containerd-shim %{buildroot}%{_bindir}/docker-containerd-shim +#ln -s ctr %{buildroot}%{_bindir}/docker-containerd-ctr +#ln -s runc %{buildroot}%{_bindir}/docker-runc %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" @@ -101,20 +194,25 @@ fi %{_bindir}/docker-containerd-shim %{_bindir}/docker-runc %{_bindir}/docker-containerd +%{_bindir}/dockerd +%{_udevrulesdir}/80-docker.rules %{_unitdir}/docker.service %{_unitdir}/docker.socket %{_datadir}/bash-completion/completions/docker %{_datadir}/fish/vendor_completions.d/docker.fish %{_mandir}/man1/docker*.1* -%{_mandir}/man5/config-json.5* %{_mandir}/man5/Dockerfile.5* -%{_mandir}/man8/docker-daemon.8* +%{_mandir}/man5/docker-config-json.5* +%{_mandir}/man8/dockerd.8* %{_datadir}/vim/vimfiles/ftdetect/dockerfile.vim %{_datadir}/vim/vimfiles/syntax/dockerfile.vim %{_datadir}/zsh/site-functions/_docker -%doc AUTHORS LICENSE +%doc components/engine/AUTHORS components/engine/LICENSE %changelog +* Sun Jul 08 2018 Silvan Calarco 18.05.0-1mamba +- update to 18.05.0 + * Thu Apr 19 2018 Silvan Calarco 1.11.1-3mamba - rebuilt by autoport with build requirements: libgo-devel>=7.3.0-1mamba