mirror of
https://abf.rosa.ru/djam/docker.git
synced 2025-02-23 17:42:47 +00:00
400 lines
17 KiB
RPMSpec
400 lines
17 KiB
RPMSpec
%define _libexecdir /usr/libexec
|
|
|
|
# modifying the dockerinit binary breaks the SHA1 sum check by docker
|
|
%global __os_install_post %{_usrlibrpm}/brp-compress
|
|
|
|
#debuginfo not supported with Go
|
|
%global debug_package %{nil}
|
|
%global import_path github.com/docker/docker
|
|
%global gopath %{_libdir}/golang
|
|
%define gosrc %{gopath}/src/%{import_path}
|
|
|
|
Name: docker
|
|
Version: 1.6.2
|
|
Release: 1
|
|
Summary: Automates deployment of containerized applications
|
|
License: ASL 2.0
|
|
Group: System/Kernel and hardware
|
|
|
|
URL: http://www.docker.com
|
|
# only x86_64 for now: https://github.com/docker/docker/issues/136
|
|
ExclusiveArch: x86_64
|
|
Source0: https://%{import_path}/archive/v%{version}.tar.gz
|
|
#Source0: https://%{import_path}/archive/%{commit}.tar.gz
|
|
Source100: %{name}.rpmlintrc
|
|
BuildRequires: gcc
|
|
BuildRequires: glibc-static-devel
|
|
|
|
# ensure build uses golang 1.2-7 and above
|
|
# http://code.google.com/p/go/source/detail?r=a15f344a9efa35ef168c8feaa92a15a1cdc93db5
|
|
BuildRequires: golang >= 1.3.3
|
|
|
|
BuildRequires: sqlite3-devel
|
|
|
|
BuildRequires: golang-net-devel
|
|
# Provided by this version of docker - doesn'- wompile without these versions
|
|
#BuildRequires: golang(github.com/gorilla/mux)
|
|
#BuildRequires: golang(github.com/gorilla/context)
|
|
#BuildRequires: golang(github.com/kr/pty)
|
|
#BuildRequires: golang(github.com/godbus/dbus)
|
|
#BuildRequires: golang(github.com/coreos/go-systemd) >= 0-0.4
|
|
#BuildRequires: golang(code.google.com/p/gosqlite/sqlite3)
|
|
#BuildRequires: golang(github.com/syndtr/gocapability/capability)
|
|
#BuildRequires: golang(github.com/docker/libcontainer)
|
|
#BuildRequires: golang(github.com/tchap/go-patricia/patricia)
|
|
#BuildRequires: golang(github.com/docker/libtrust)
|
|
#BuildRequires: golang(github.com/docker/libtrust/trustgraph)
|
|
|
|
BuildRequires: go-md2man
|
|
BuildRequires: device-mapper-devel
|
|
BuildRequires: btrfs-devel
|
|
BuildRequires: pkgconfig(systemd)
|
|
Requires: systemd-units
|
|
|
|
# need xz to work with ubuntu images
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1045220
|
|
Requires: xz
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1035436
|
|
# this won't be needed for rhel7+
|
|
Requires: bridge-utils
|
|
Requires: lxc
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1034919
|
|
# No longer needed in Fedora because of libcontainer
|
|
Requires: libcgroup
|
|
Provides: lxc-docker = %{version}
|
|
|
|
Obsoletes: docker-io < 1.2.0-8
|
|
Provides: docker-io = %{version}-%{release}
|
|
|
|
|
|
%description
|
|
Docker is an open-source engine that automates the deployment of any
|
|
application as a lightweight, portable, self-sufficient container that will
|
|
run virtually anywhere.
|
|
|
|
Docker containers can encapsulate any payload, and will run consistently on
|
|
and between virtually any server. The same container that a developer builds
|
|
and tests on a laptop will run at scale, in production*, on VMs, bare-metal
|
|
servers, OpenStack clusters, public instances, or combinations of the above.
|
|
|
|
%package devel
|
|
BuildRequires: golang >= 1.3.3
|
|
Requires: golang >= 1.3.3
|
|
Requires: docker-pkg-devel
|
|
Summary: A golang registry for global request variables (source libraries)
|
|
Provides: golang(%{import_path}) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/api) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/api/client) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/api/server) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/api/types) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/archive) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/builtins) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/contrib) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/contrib/docker-device-tool) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/contrib/host-integration) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/execdriver) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/execdriver/execdrivers) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/execdriver/lxc) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/execdriver/native) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/execdriver/native/template) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/aufs) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/btrfs) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/devmapper) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/overlay) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/graphtest) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/graphdriver/vfs) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/logger) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/logger/jsonfilelog) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/logger/syslog) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/networkdriver) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/networkdriver/bridge) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/networkdriver/ipallocator) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/networkdriver/portallocator) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/daemon/networkdriver/portmapper) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/dockerversion) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/engine) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/graph) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/image) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/integration) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/integration-cli) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/links) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/nat) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/opts) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/term) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/term/winconsole) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/registry) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/registry/v2) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/runconfig) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/utils) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/utils/broadcastwriter) = %{version}-%{release}
|
|
|
|
%description devel
|
|
This is the source libraries for docker.
|
|
|
|
%package pkg-devel
|
|
BuildRequires: golang >= 1.3.3
|
|
Requires: golang >= 1.3.3
|
|
Summary: A golang registry for global request variables (source libraries)
|
|
Provides: golang(%{import_path}/pkg/graphdb) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/iptables) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/listenbuffer) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/mflag) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/mflag/example) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/mount) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/namesgenerator) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/networkfs/etchosts) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/networkfs/resolvconf) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/proxy) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/signal) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/symlink) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/sysinfo) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/system) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/systemd) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/tailfile) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/term) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/testutils) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/truncindex) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/units) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/user) = %{version}-%{release}
|
|
Provides: golang(%{import_path}/pkg/version) = %{version}-%{release}
|
|
|
|
%description pkg-devel
|
|
These source librariees are provided by docker, but are independent of docker
|
|
specific logic. The import paths of %{import_path}/pkg/...
|
|
|
|
%prep
|
|
#%setup -q -n docker-%{commit}
|
|
%setup -q -n docker-%{version}
|
|
#rm -rf vendor/src/code.google.com vendor/src/github.com/{coreos,docker/libtrust,godbus,gorilla,kr,syndtr,tchap}
|
|
#for f in `find . -name '*.go'`; do
|
|
#perl -pi -e 's|github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar|archive/tar|' $f
|
|
#done
|
|
|
|
%build
|
|
#mkdir -p _build
|
|
|
|
#pushd _build
|
|
#mkdir -p src/github.com/docker
|
|
#ln -s $(dirs +1 -l) src/github.com/docker/docker
|
|
#popd
|
|
|
|
export DOCKER_GITCOMMIT="%{shortcommit}"
|
|
#export DOCKER_GITCOMMIT="%{shortcommit}/%{version}"
|
|
#export GOPATH=$(pwd)/_build:$(pwd)/vendor:%{gopath}
|
|
|
|
export CFLAGS="-I/usr/share/go/src/runtime"
|
|
AUTO_GOPATH=1 ./hack/make.sh dynbinary
|
|
#hack/make.sh dynbinary
|
|
docs/man/md2man-all.sh
|
|
cp contrib/syntax/vim/LICENSE LICENSE-vim-syntax
|
|
cp contrib/syntax/vim/README.md README-vim-syntax.md
|
|
|
|
%install
|
|
# install binary
|
|
install -d %{buildroot}%{_bindir}
|
|
install -p -m 755 bundles/%{version}/dynbinary/docker-%{version} %{buildroot}%{_bindir}/docker
|
|
|
|
# install dockerinit
|
|
install -d %{buildroot}%{_libexecdir}/docker
|
|
install -p -m 755 bundles/%{version}/dynbinary/dockerinit-%{version} %{buildroot}%{_libexecdir}/docker/dockerinit
|
|
|
|
# Place to store images
|
|
install -d %{buildroot}%{_libexecdir}/cache/docker
|
|
|
|
# install manpages
|
|
install -d %{buildroot}%{_mandir}/man1
|
|
install -p -m 644 docs/man/man1/docker*.1 %{buildroot}%{_mandir}/man1
|
|
install -d %{buildroot}%{_mandir}/man5
|
|
install -p -m 644 docs/man/man5/Dockerfile.5 %{buildroot}%{_mandir}/man5
|
|
|
|
# install bash completion
|
|
install -d %{buildroot}%{_sysconfdir}/bash_completion.d
|
|
install -p -m 644 contrib/completion/bash/docker %{buildroot}%{_sysconfdir}/bash_completion.d/docker.bash
|
|
# install zsh completion
|
|
install -d %{buildroot}%{_datadir}/zsh/site-functions
|
|
install -p -m 644 contrib/completion/zsh/_docker %{buildroot}%{_datadir}/zsh/site-functions
|
|
# install vim syntax highlighting
|
|
install -d %{buildroot}%{_datadir}/vim/vimfiles/{doc,ftdetect,syntax}
|
|
install -p -m 644 contrib/syntax/vim/doc/dockerfile.txt %{buildroot}%{_datadir}/vim/vimfiles/doc
|
|
install -p -m 644 contrib/syntax/vim/ftdetect/dockerfile.vim %{buildroot}%{_datadir}/vim/vimfiles/ftdetect
|
|
install -p -m 644 contrib/syntax/vim/syntax/dockerfile.vim %{buildroot}%{_datadir}/vim/vimfiles/syntax
|
|
# install udev rules
|
|
install -d %{buildroot}%{_udevrulesdir}
|
|
install -p -m 755 contrib/udev/80-docker.rules %{buildroot}%{_udevrulesdir}
|
|
# install storage dir
|
|
install -d -m 700 %{buildroot}%{_sharedstatedir}/docker
|
|
# install systemd/init scripts
|
|
install -d %{buildroot}%{_unitdir}
|
|
install -p -m 644 contrib/init/systemd/docker.service %{buildroot}%{_unitdir}
|
|
install -p -m 644 contrib/init/systemd/docker.socket %{buildroot}%{_unitdir}
|
|
|
|
# It's convenient to have docker listening on a tcp port so add it
|
|
# the fd: param doesn't seem to work as well as the unix one
|
|
# Also use rather /var/cache to store images
|
|
perl -pi -e 's|-H fd://|-H unix://var/run/docker.sock -H tcp://127.0.0.1:2375 -g /var/cache/docker|' %{buildroot}%{_unitdir}/docker.service
|
|
# Fix rights on docker socket so it can start - systemd should do it, but it's systemd you know !
|
|
perl -pi -e "s|^SocketUser|#Doesn't seem to work\nSocketUser|m" %{buildroot}%{_unitdir}/docker.socket
|
|
perl -pi -e "s|^SocketGroup=docker|SocketGroup=docker\n# So do it another way\nExecStartPost=/bin/chgrp docker /var/run/docker.sock|m" %{buildroot}%{_unitdir}/docker.socket
|
|
|
|
# sources
|
|
install -d -p %{buildroot}/%{gosrc}
|
|
|
|
for dir in api autogen builtins daemon engine graph \
|
|
image links nat opts pkg registry runconfig utils
|
|
do
|
|
cp -rpav $dir %{buildroot}/%{gosrc}
|
|
done
|
|
|
|
%pre
|
|
getent group docker > /dev/null || %{_sbindir}/groupadd -r docker
|
|
exit 0
|
|
|
|
%post
|
|
%systemd_post docker
|
|
|
|
%preun
|
|
%systemd_preun docker
|
|
|
|
%postun
|
|
%systemd_postun_with_restart docker
|
|
|
|
%files
|
|
%doc AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md
|
|
%doc LICENSE-vim-syntax README-vim-syntax.md
|
|
%{_mandir}/man1/docker*.1.gz
|
|
%{_mandir}/man5/Dockerfile.5.gz
|
|
%{_bindir}/docker
|
|
%dir %{_libexecdir}/docker
|
|
%dir %{_libexecdir}/cache/docker
|
|
%{_libexecdir}/docker/dockerinit
|
|
%{_unitdir}/docker.service
|
|
%{_unitdir}/docker.socket
|
|
%dir %{_sysconfdir}/bash_completion.d
|
|
%{_sysconfdir}/bash_completion.d/docker.bash
|
|
%{_datadir}/zsh/site-functions/_docker
|
|
%dir %{_sharedstatedir}/docker
|
|
%dir %{_udevrulesdir}
|
|
%{_udevrulesdir}/80-docker.rules
|
|
%dir %{_datadir}/vim/vimfiles/doc
|
|
%{_datadir}/vim/vimfiles/doc/dockerfile.txt
|
|
%dir %{_datadir}/vim/vimfiles/ftdetect
|
|
%{_datadir}/vim/vimfiles/ftdetect/dockerfile.vim
|
|
%dir %{_datadir}/vim/vimfiles/syntax
|
|
%{_datadir}/vim/vimfiles/syntax/dockerfile.vim
|
|
|
|
%files devel
|
|
%dir %{gosrc}
|
|
%dir %{gosrc}/api
|
|
%{gosrc}/api/README.md
|
|
%{gosrc}/api/*.go
|
|
%dir %{gosrc}/api/client
|
|
%{gosrc}/api/client/*.go
|
|
%dir %{gosrc}/api/server
|
|
%{gosrc}/api/server/*.go
|
|
%dir %{gosrc}/api/types
|
|
%{gosrc}/api/types/*.go
|
|
%dir %{gosrc}/autogen/dockerversion
|
|
%{gosrc}/autogen/dockerversion/*.go
|
|
%dir %{gosrc}/builtins
|
|
%{gosrc}/builtins/*.go
|
|
%dir %{gosrc}/daemon
|
|
%{gosrc}/daemon/*.go
|
|
%{gosrc}/daemon/README.md
|
|
%dir %{gosrc}/daemon/execdriver
|
|
%{gosrc}/daemon/execdriver/*.go
|
|
%dir %{gosrc}/daemon/execdriver/execdrivers
|
|
%{gosrc}/daemon/execdriver/execdrivers/*.go
|
|
%dir %{gosrc}/daemon/execdriver/lxc
|
|
%{gosrc}/daemon/execdriver/lxc/*.go
|
|
%dir %{gosrc}/daemon/execdriver/native
|
|
%{gosrc}/daemon/execdriver/native/*.go
|
|
%dir %{gosrc}/daemon/execdriver/native/template
|
|
%{gosrc}/daemon/execdriver/native/template/*.go
|
|
%dir %{gosrc}/daemon/graphdriver
|
|
%{gosrc}/daemon/graphdriver/*.go
|
|
%dir %{gosrc}/daemon/graphdriver/aufs
|
|
%{gosrc}/daemon/graphdriver/aufs/*.go
|
|
%dir %{gosrc}/daemon/graphdriver/btrfs
|
|
%{gosrc}/daemon/graphdriver/btrfs/*.go
|
|
%dir %{gosrc}/daemon/graphdriver/devmapper
|
|
%{gosrc}/daemon/graphdriver/devmapper/*.go
|
|
%{gosrc}/daemon/graphdriver/devmapper/README.md
|
|
%dir %{gosrc}/daemon/graphdriver/graphtest
|
|
%{gosrc}/daemon/graphdriver/graphtest/*.go
|
|
%dir %{gosrc}/daemon/graphdriver/overlay
|
|
%{gosrc}/daemon/graphdriver/overlay/*.go
|
|
%dir %{gosrc}/daemon/graphdriver/vfs
|
|
%{gosrc}/daemon/graphdriver/vfs/*.go
|
|
%dir %{gosrc}/daemon/logger
|
|
%{gosrc}/daemon/logger/*.go
|
|
%dir %{gosrc}/daemon/logger/jsonfilelog
|
|
%{gosrc}/daemon/logger/jsonfilelog/*.go
|
|
%dir %{gosrc}/daemon/logger/syslog
|
|
%{gosrc}/daemon/logger/syslog/*.go
|
|
%dir %{gosrc}/daemon/networkdriver
|
|
%dir %{gosrc}/daemon/networkdriver/bridge
|
|
%{gosrc}/daemon/networkdriver/bridge/*.go
|
|
%dir %{gosrc}/daemon/networkdriver/ipallocator
|
|
%{gosrc}/daemon/networkdriver/ipallocator/*.go
|
|
%{gosrc}/daemon/networkdriver/*.go
|
|
%dir %{gosrc}/daemon/networkdriver/portallocator
|
|
%{gosrc}/daemon/networkdriver/portallocator/*.go
|
|
%dir %{gosrc}/daemon/networkdriver/portmapper
|
|
%{gosrc}/daemon/networkdriver/portmapper/*.go
|
|
%dir %{gosrc}/engine
|
|
%{gosrc}/engine/*.go
|
|
%dir %{gosrc}/graph
|
|
%{gosrc}/graph/*.go
|
|
%dir %{gosrc}/image
|
|
%{gosrc}/image/*.go
|
|
%dir %{gosrc}/image/spec
|
|
%{gosrc}/image/spec/*.md
|
|
%dir %{gosrc}/links
|
|
%{gosrc}/links/*.go
|
|
%dir %{gosrc}/nat
|
|
%{gosrc}/nat/*.go
|
|
%dir %{gosrc}/opts
|
|
%{gosrc}/opts/*.go
|
|
%dir %{gosrc}/pkg
|
|
%dir %{gosrc}/pkg/term
|
|
%dir %{gosrc}/pkg/term/winconsole
|
|
%{gosrc}/pkg/term/winconsole/*.go
|
|
%dir %{gosrc}/registry
|
|
%dir %{gosrc}/registry/v2
|
|
%{gosrc}/registry/*.go
|
|
%{gosrc}/registry/v2/*.go
|
|
%dir %{gosrc}/runconfig
|
|
%{gosrc}/runconfig/*.go
|
|
%dir %{gosrc}/utils
|
|
%{gosrc}/utils/*.go
|
|
|
|
%files pkg-devel
|
|
%dir %{gosrc}
|
|
%dir %{gosrc}/pkg
|
|
%{gosrc}/pkg/README.md
|
|
%dir %{gosrc}/pkg/archive
|
|
%{gosrc}/pkg/*/README.md
|
|
%{gosrc}/pkg/*/LICENSE*
|
|
%{gosrc}/pkg/*/*.go
|
|
%dir %{gosrc}/pkg/archive/testdata
|
|
%{gosrc}/pkg/archive/testdata/broken.tar
|
|
%dir %{gosrc}/pkg/mflag/example
|
|
%{gosrc}/pkg/mflag/example/example.go
|
|
%dir %{gosrc}/pkg/networkfs/etchosts
|
|
%dir %{gosrc}/pkg/networkfs/resolvconf
|
|
%{gosrc}/pkg/networkfs/*/*.go
|
|
%dir %{gosrc}/pkg/parsers/filters
|
|
%dir %{gosrc}/pkg/parsers/kernel
|
|
%{gosrc}/pkg/parsers/*/*.go
|
|
%{gosrc}/pkg/tarsum/tarsum_spec.md
|
|
%dir %{gosrc}/pkg/tarsum/testdata
|
|
%dir %{gosrc}/pkg/tarsum/testdata/collision
|
|
%dir %{gosrc}/pkg/tarsum/testdata/xattr
|
|
%dir %{gosrc}/pkg/tarsum/testdata/46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457
|
|
%dir %{gosrc}/pkg/tarsum/testdata/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
|
|
%{gosrc}/pkg/tarsum/testdata/*/*
|