9460ff2b69a607f18666d252c1e04a384c341df3
[iotivity.git] / tools / fedora / Dockerfile
1 #!/bin/echo docker build . -f
2 # Copyright 2017 Samsung Electronics France SAS
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 FROM fedora:24
17 MAINTAINER Philippe Coval (philippe.coval@osg.samsung.com)
18
19 ENV project iotivity
20 ARG version
21 ENV version ${version:-2.0.0}
22 ENV package ${project}-${version}
23 ARG user
24 ENV user ${user:-abuild}
25 ARG release
26 ENV release ${release:-0~${user}0+${DISTTAG}}
27 ENV EMAIL ${EMAIL:-nobody@localhost}
28 ENV NAME ${NAME:-Nobody}
29
30 RUN echo "#log: ${project}: Preparing system (DISTTAG=${DISTTAG})" \
31   && dnf update -y \
32   && dnf install -y \
33    git \
34    make \
35    sudo \
36    rpm-build \
37 \
38    autoconf \
39    automake \
40    boost-devel \
41    bzip2 \
42    chrpath \
43    expat-devel \
44    findutils \
45    gcc-c++\
46    gettext-devel \
47    git \
48    glib2-devel \
49    libcurl-devel \
50    libtool \
51    libuuid-devel \
52    openssl-devel \
53    scons \
54    sqlite-devel \
55    unzip \
56    wget \
57    xz \
58  && dnf clean -y all \
59  && sync
60
61 ARG workdir
62 ENV workdir ${workdir:-${HOME}/usr/local/src/${project}}
63 WORKDIR ${workdir}
64
65 COPY . ${WORKDIR}
66
67 RUN echo "#log: ${project}: Preparing sources" \
68   && uname -a \
69   && cat /etc/os-release \
70   && scons --version \
71   && gcc --version \
72   && g++ --version \
73   && [ ! -x prep.sh ] || EXEC_MODE=true ./prep.sh \
74   && tar cvfz ../${package}.tar.gz \
75 --transform "s|^./|${package}/|" \
76 --exclude 'debian' --exclude-vcs \
77 . \
78   && sync
79
80 RUN echo "#log: ${project}: Setup rpm-build (${WORKDIR})" \
81   && mkdir -p "/root/rpmbuild/SOURCES/" \
82   && ln -vfs "${workdir}/../${package}.tar.gz"  "/root/rpmbuild/SOURCES/" \
83   && ln -vfs "${workdir}/tools/tizen/"* "/root/rpmbuild/SOURCES/" \
84   && sync
85
86 RUN echo "#log: ${project}: Building RPMs (${project}-${version}.${release})" \
87   && cd "/root/rpmbuild/SOURCES/" \
88   && ls -l \
89   && time rpmbuild -ba "${project}.spec" \
90    --define "version ${version}" \
91    --define "release ${release}" \
92   && find /root/rpmbuild/ -iname "*.*rpm" \
93   && sync
94
95 RUN echo "#log: ${project}: Installing RPMs (${release})" \
96   && rpm -v -i /root/rpmbuild/RPMS/*/*.rpm \
97   && rpm -ql ${project} \
98   && rpm -ql ${project}-service \
99   && rpm -ql ${project}-devel \
100   && rpm -ql ${project}-test \
101   && rpm -ql ${project}-debuginfo \
102   && sync