Add build option of spec file
[platform/upstream/docker-engine.git] / packaging / docker-engine.spec
1 %define docker_path /src/github.com/docker
2 %define runc_path /src/github.com/opencontainers
3 %define container_path /src/github.com/containerd
4 %define go_version 1.8.3
5 %define orig_version %{version}-ce
6
7 Name: docker-engine
8 Version: 17.06.1
9 Release: 0
10 Summary: The open-source application container engine
11 Group: Tools/Docker
12
13 License: ASL 2.0
14 ExclusiveArch: %{arm}
15 Source0: %{name}.tar.gz
16 Source1: %{name}.manifest
17 Source11: go1.8.3.linux-amd64.tar.gz
18 Source12: go1.8.3.linux-armv7.tar.gz
19 Source13: docker-ce.tar.bz2
20 Source14: containerd.tar.bz2
21 Source15: runc.tar.bz2
22
23 BuildRequires: git
24 Requires(post): /sbin/ldconfig
25 Requires(postun): /sbin/ldconfig
26 Requires: docker-containerd
27 Requires: docker-runc 
28
29
30 %description
31 Docker is an open source project to build, ship and run any application as a
32 lightweight container.
33
34 Docker containers are both hardware-agnostic and platform-agnostic. This means
35 they can run anywhere, from your laptop to the largest EC2 compute instance and
36 everything in between - and they don't require you to use a particular
37 language, framework or packaging system. That makes them great building blocks
38 for deploying and scaling web apps, databases, and backend services without
39 depending on a particular stack or provider.
40
41
42
43 %prep
44 %setup -q
45
46 %ifarch armv7l
47 cp %{SOURCE12} .
48 tar -zxf %{SOURCE12}
49 rm -f %{_builddir}/%{name}-%{version}/go%{go_version}.linux-armv7.tar.gz
50 %endif
51 %ifarch x86_64
52 cp %{SOURCE11} .
53 tar -zxf %{SOURCE11}
54 rm -f %{_builddir}/%{name}-%{version}/go%{go_version}.linux-amd64.tar.gz
55 %endif
56 chmod g-w %_sourcedir/*
57 cp %{SOURCE1} ./%{name}.manifest
58
59 # docker-ce tar file
60 cp %{SOURCE13} .
61 tar -xvf %{SOURCE13}
62
63 # containerd tar file
64 cp %{SOURCE14} .
65 tar -xvf %{SOURCE14}
66
67 # runc tar file
68 cp %{SOURCE15} .
69 tar -xvf %{SOURCE15}
70
71 ## set docker build folder
72 mkdir -p .%docker_path/
73 mkdir -p .%docker_path/engine
74 mkdir -p .%docker_path/cli
75 mkdir -p .%container_path/containerd
76 mkdir -p .%runc_path/
77 mkdir -p .%runc_path/runc
78
79 cd ext/docker-ce/components/engine
80 mv `ls . | grep -v packaging | grep -v src` ../../../..%docker_path/engine
81 cd ../cli/
82 mv `ls . | grep -v packaging | grep -v src` ../../../..%docker_path/cli
83 cd ../../../containerd/
84 mv `ls . | grep -v packaging | grep -v src` ../..%container_path/containerd
85 cd ../runc/
86 mv `ls . | grep -v packaging | grep -v src` ../..%runc_path/runc
87 cd ../../
88
89
90 %build
91 cd .%docker_path/engine
92 export GOROOT=%{_builddir}/%{name}-%{version}/go
93 export PATH=$PATH:%{_builddir}/%{name}-%{version}/go/bin
94 export GOPATH=%{_builddir}/%{name}-%{version}
95 export DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdriver_devicemapper'
96
97 go env
98 echo 'docker daemon'
99 export CGO_ENABLED=1
100 AUTO_GOPATH=1 ./hack/make.sh dynbinary
101
102 echo 'docker cli'
103 cd ../cli
104 make binary
105
106 export BUILDTAGS=no_btrfs
107 echo 'containerd build'
108 cd ../../containerd/containerd
109 make
110
111 echo 'runc build'
112 cd ../../opencontainers/runc
113 make all BUILDTAGS=""
114
115 %install
116 rm -rf %{buildroot}
117 # install binary
118 install -d $RPM_BUILD_ROOT/%{_bindir}
119 install -p -m 755 .%docker_path/cli/build/docker-linux-arm $RPM_BUILD_ROOT/%{_bindir}/docker
120 install -p -m 755 .%docker_path/engine/bundles/%{orig_version}/dynbinary-daemon/dockerd-%{orig_version} $RPM_BUILD_ROOT/%{_bindir}/dockerd
121 install -p -m 755 .%runc_path/runc/runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
122 install -p -m 755 .%container_path/containerd/bin/containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
123 install -p -m 755 .%container_path/containerd/bin/containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
124 install -p -m 755 .%container_path/containerd/bin/ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
125
126 %files
127 %manifest %{name}.manifest
128 %defattr(-,root,root,-)
129 /%{_bindir}/docker
130 /%{_bindir}/dockerd
131 /%{_bindir}/docker-containerd
132 /%{_bindir}/docker-containerd-shim
133 /%{_bindir}/docker-containerd-ctr
134 /%{_bindir}/docker-runc
135 %license .%docker_path/engine/LICENSE