bigtop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject bigtop git commit: BIGTOP-1580: Improve Bigtop Toolchain: Versioning of Packages
Date Fri, 01 May 2015 23:12:33 GMT
Repository: bigtop
Updated Branches:
  refs/heads/master 26d02229e -> 0c1ed66b5


BIGTOP-1580: Improve Bigtop Toolchain: Versioning of Packages

Signed-off-by: Konstantin Boudnik <cos@wandisco.com>


Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/0c1ed66b
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/0c1ed66b
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/0c1ed66b

Branch: refs/heads/master
Commit: 0c1ed66b52d9948a3a417f13fb451f80ca7e3d54
Parents: 26d0222
Author: Olaf Flebbe <of@oflebbe.de>
Authored: Fri May 1 23:51:16 2015 +0200
Committer: Konstantin Boudnik <cos@wandisco.com>
Committed: Fri May 1 15:01:05 2015 -0700

----------------------------------------------------------------------
 BUILDING.txt    | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 packages.gradle | 38 +++++++++++-------------
 2 files changed, 101 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bigtop/blob/0c1ed66b/BUILDING.txt
----------------------------------------------------------------------
diff --git a/BUILDING.txt b/BUILDING.txt
new file mode 100644
index 0000000..bb1ae4e
--- /dev/null
+++ b/BUILDING.txt
@@ -0,0 +1,84 @@
+***************
+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.
+
+
+

http://git-wip-us.apache.org/repos/asf/bigtop/blob/0c1ed66b/packages.gradle
----------------------------------------------------------------------
diff --git a/packages.gradle b/packages.gradle
index f7c5b03..7ccf5eb 100644
--- a/packages.gradle
+++ b/packages.gradle
@@ -49,7 +49,7 @@ def BOM_map = [
     DIST_DIR:       projectDir.absolutePath + "/dist",
     DL_DIR:         projectDir.absolutePath + "/dl",
     BIGTOP_BOM:     '',
-    BIGTOP_BUILD_STAMP: ''
+    BIGTOP_BUILD_STAMP: 1
 ]
 
 def final BIGTOP_BOM = 'BIGTOP_BOM'
@@ -259,8 +259,7 @@ def genTasks = { target, variable ->
     def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
     def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
     def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
-    def final RELEASE_VERSION = BOM_map[variable + '_RELEASE_VERSION']
-    def final SRCDEB = "${PKG_NAME}_$PKG_VERSION${BIGTOP_BUILD_STAMP}-${PKG_RELEASE}.dsc"
+    def final SRCDEB = "${PKG_NAME}_$PKG_VERSION-${BIGTOP_BUILD_STAMP}.dsc"
 
     exec {
       workingDir PKG_OUTPUT_DIR
@@ -278,17 +277,17 @@ def genTasks = { target, variable ->
 --preserve-envvar JAVA_HOME \
 --preserve-envvar SCALA_HOME \
 --set-envvar=${variable}_BASE_VERSION=$BASE_VERSION \
---set-envvar=${variable}_VERSION=$PKG_VERSION$BIGTOP_BUILD_STAMP \
---set-envvar=${variable}_RELEASE=$RELEASE_VERSION \
+--set-envvar=${variable}_VERSION=$PKG_VERSION \
+--set-envvar=${variable}_RELEASE=$BIGTOP_BUILD_STAMP \
 -uc -us -b
 """
     exec {
-      workingDir "$PKG_OUTPUT_DIR/$PKG_NAME-$PKG_VERSION$BIGTOP_BUILD_STAMP"
+      workingDir "$PKG_OUTPUT_DIR/$PKG_NAME-$PKG_VERSION"
       commandLine command.split(' ')
     }
     exec {
       workingDir "$PKG_OUTPUT_DIR"
-      commandLine 'rm','-rf',"$PKG_NAME-$PKG_VERSION$BIGTOP_BUILD_STAMP"
+      commandLine 'rm','-rf',"$PKG_NAME-$PKG_VERSION"
     }
     touchTargetFile(BOM_map[variable + '_TARGET_DEB'])
   }
@@ -308,20 +307,19 @@ def genTasks = { target, variable ->
     def final PKG_NAME = BOM_map[variable + '_PKG_NAME']
     def final SEED_TAR = BOM_map[variable + '_SEED_TAR']
     def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
-    def final RELEASE_VERSION = BOM_map[variable + '_RELEASE_VERSION']
     def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
     delete ("$PKG_BUILD_DIR/deb")
-    def final DEB_BLD_DIR = "$PKG_BUILD_DIR/deb/$NAME-${PKG_VERSION}${BIGTOP_BUILD_STAMP}"
-    def final DEB_PKG_DIR = "$PKG_BUILD_DIR/deb/$PKG_NAME-${PKG_VERSION}${BIGTOP_BUILD_STAMP}-${PKG_VERSION}"
+    def final DEB_BLD_DIR = "$PKG_BUILD_DIR/deb/$NAME-${PKG_VERSION}"
+    def final DEB_PKG_DIR = "$PKG_BUILD_DIR/deb/$PKG_NAME-${PKG_VERSION}-${BIGTOP_BUILD_STAMP}"
     mkdir (DEB_BLD_DIR)
     copy {
       from SEED_TAR
       into "$PKG_BUILD_DIR/deb/"
-      rename BOM_map[variable + '_TARBALL_DST'], "${PKG_NAME}_${PKG_VERSION}${BIGTOP_BUILD_STAMP}.orig.tar.gz"
+      rename BOM_map[variable + '_TARBALL_DST'], "${PKG_NAME}_${PKG_VERSION}.orig.tar.gz"
     }
     exec {
       workingDir DEB_BLD_DIR
-      commandLine "tar --strip-components 1 -xf $DEB_BLD_DIR/../${PKG_NAME}_${PKG_VERSION}${BIGTOP_BUILD_STAMP}.orig.tar.gz".split('
')
+      commandLine "tar --strip-components 1 -xf $DEB_BLD_DIR/../${PKG_NAME}_${PKG_VERSION}.orig.tar.gz".split('
')
     }
     fileTree ("${BASE_DIR}/bigtop-packages/src/deb/$NAME") {
       include '**/*'
@@ -339,7 +337,7 @@ def genTasks = { target, variable ->
     bomWriter.close()
     // Create changelog
     def changelog = new File("$DEB_BLD_DIR/debian/changelog").newWriter()
-    changelog << "$PKG_NAME ($PKG_VERSION$BIGTOP_BUILD_STAMP-$RELEASE_VERSION) stable;
urgency=low\n"
+    changelog << "$PKG_NAME ($PKG_VERSION-$BIGTOP_BUILD_STAMP) stable; urgency=low\n"
     changelog << "  Clean build\n"
     changelog << " -- Bigtop <dev@bigtop.apache.org>  ${getDate()}\n"
     changelog.close()
@@ -409,15 +407,14 @@ def genTasks = { target, variable ->
     def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
     def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
     def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
-    def final RELEASE_VERSION = BOM_map[variable + '_RELEASE_VERSION']
     def RELEASE_DIST = "rpmbuild --eval '%{?dist}' 2>/dev/null".execute().text.trim().replaceAll("'",'')
-    def SRCRPM="$PKG_OUTPUT_DIR/$PKG_NAME-${PKG_VERSION}$BIGTOP_BUILD_STAMP-${RELEASE_VERSION}${RELEASE_DIST}.src.rpm"
+    def SRCRPM="$PKG_OUTPUT_DIR/$PKG_NAME-${PKG_VERSION}-$BIGTOP_BUILD_STAMP${RELEASE_DIST}.src.rpm"
 
     def command = [
         '--define', "_topdir $PKG_BUILD_DIR/rpm/",
         '--define', "${NAME}_base_version $BASE_VERSION",
-        '--define', "${NAME}_version ${PKG_VERSION}${BIGTOP_BUILD_STAMP}",
-        '--define', "${NAME}_release $RELEASE_VERSION%{?dist}",
+        '--define', "${NAME}_version ${PKG_VERSION}",
+        '--define', "${NAME}_release ${BIGTOP_BUILD_STAMP}%{?dist}",
         '--rebuild', SRCRPM,
     ]
     exec {
@@ -446,7 +443,6 @@ def genTasks = { target, variable ->
     def final PKG_BUILD_DIR = BOM_map[variable + '_BUILD_DIR']
     def final SEED_TAR = BOM_map[variable + '_SEED_TAR']
     def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
-    def final RELEASE_VERSION = BOM_map[variable + '_RELEASE_VERSION']
     def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
     def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
     delete ("$PKG_BUILD_DIR/rpm")
@@ -503,8 +499,8 @@ def genTasks = { target, variable ->
     def command = [
         '--define', "_topdir $PKG_BUILD_DIR/rpm/",
         '--define', "${PKG_NAME_FOR_PKG}_base_version $BASE_VERSION",
-        '--define', "${PKG_NAME_FOR_PKG}_version ${PKG_VERSION}${BIGTOP_BUILD_STAMP}",
-        '--define', "${PKG_NAME_FOR_PKG}_release $RELEASE_VERSION%{?dist}",
+        '--define', "${PKG_NAME_FOR_PKG}_version ${PKG_VERSION}",
+        '--define', "${PKG_NAME_FOR_PKG}_release ${BIGTOP_BUILD_STAMP}%{?dist}",
         '-bs', '--nodeps', "--buildroot=${PKG_BUILD_DIR}/rpm/INSTALL",
         specFileName,
     ]
@@ -516,7 +512,7 @@ def genTasks = { target, variable ->
     mkdir(PKG_OUTPUT_DIR)
     def RELEASE_DIST = "rpmbuild --eval '%{?dist}' 2>/dev/null".execute().text.trim().replaceAll("'",'')
     copy {
-      from "$PKG_BUILD_DIR/rpm/SRPMS/${PKG_NAME}-${PKG_VERSION}${BIGTOP_BUILD_STAMP}-${RELEASE_VERSION}${RELEASE_DIST}.src.rpm"
+      from "$PKG_BUILD_DIR/rpm/SRPMS/${PKG_NAME}-${PKG_VERSION}-${BIGTOP_BUILD_STAMP}${RELEASE_DIST}.src.rpm"
       into PKG_OUTPUT_DIR
     }
     touchTargetFile(BOM_map[variable + '_TARGET_SRPM'])


Mime
View raw message