aboutsummaryrefslogtreecommitdiff
path: root/BUILDING.txt
blob: 85ff0c2c3f3398dfc2009f77999d99e768525b1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
***************
Building Bigtop
***************

Build Requirements:
===================

* A stock image of a Linux Distribution, supported are
  - Debian 8
  - Centos 6,7
  - Ubuntu 14.04 LTS
  - SLES 11 SP3
  - Fedora 20
  - openSuSE 13.1

* A fast Internet Connection, since compile process will download a lot

* Recommended is to install dependencies via puppet.
  Either
  - Read bigtop_toolchain/README.md
  or
  - install puppet and run
    puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::installer"

Building
========

For Debian, Ubuntu Bigtop supports the deb packaging format and apt repositories

For Centos, Fedora Bigtop supports rpm packaging and yum repositories

For openSuSE, SLES Bigtop supports rpm packaging but zypper seems not supported.

Bigtop consists of many packages which should be compiled in order:
See bigtop.mk for the list of packages and names.

For doing a full recompile do a
  gradle deb
or
  gradle rpm
depending on Linux distribution.

If you want to create a repository
  gradle apt
or
  gradle yum

Build results are in
  output/<names>

The $(HOME)/.m2 will contain several GB of downloads afterwards as collateral damage.

Each package will have a "-1" release part by default.

Create updated Packages
=======================

In order to create releases where one can update machines (for
instance in production) it is advisable to increase the release part for every rebuild.

This can be done by using the BIGTOP_BUILD_STAMP to set the release part of the version of every package.

For instance by default a package hadoop-2.4.1-1.deb will be created. If you need to fix this package and recompile it run:

BIGTOP_BUILD_STAMP="2" gradle hadoop-apt

This updates the package to hadoop-2.4.1-2.deb in repository, removing the old one.

Please do not use a hyphen "-" in the BIGTOP_BUILD_STAMP breaking the
algorithms apt and yum are using for calculating dependencies.

Integration into a CI system: jenkins
=====================================


A nightly build job can be created with

  gradle clean
  BIGTOP_BUILD_STAMP="nightly-${BUILD_NUMBER}" gradle apt|yum

For more background information on BIGTOP_BUILD_STAMP see ticket BIGTOP-1580.


Using a different JVM
=====================

By default, bigtop is compiled with a JDK version 8. If you want to change it,
for example to use JDK version 7, you just have to define the variable
BIGTOP_JDK:

BIGTOP_JDK=7; export BIGTOP_JDK
./gradlew deb


Note on LC_ALL/LANG
===================

Compilation may fail if your locale is not in english. You might for example
see some strange errors with dpkg-buildpackage. In that case, you should reset
the language variables before compiling:

LC_ALL=C; export LC_ALL
LANG=C; export LANG
./gradlew deb