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