Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We strive to follow best practices with both rpm and Debian based distributions.
If you discover packaging or installation issues, please file a ticket https://issues.apache.org/jira/browse/BIGTOP

 


Getting started with bigtop packaging.

...

2) Here are some steps you can follow to build bring a new bigtop packageinpackage in.

  • determine where your source is, and add it to bigtop.mkbom
  • update the bigtop-packages/src/common/<your-package> folder to have your component, and the do-component-build for it (which usually just builds a jar).  Why is there a "common" directory? Simply because deb and rpm packaging share some tasks (like do-component-build, which just usually runs a mvn or gradle command), and so we keep a common install directory which they can both leverage for packaging.
  • If you need to apply a patch to the upstream source (use the utmost caution, in general Bigtop doesn't patch upstreams):
    • create a patch file (in the patch -p1 syntax) and place it in the bigtop-packages/src/common/<your-package> common folder. Name should be patch*.diff
    •  for RPM Support place a #BIGTOP_PATCH_FILES token into the section with the Sources and  #BIGTOP_PATCH_COMMANDS between %setup and %build
    • for DEB the patch is applied by default.
    • multiple patch files are applied in the glob sorting order
  • (for RPM) now add a .spec file into bigtop-packages/src/<your-package>/... into the appropriate directory (i.e. bigtop-packages/src/rpm/tachyon/SPECS/tachyon.spec).  Obviously, your tachyon.spec file will use whats in common/ in a RPM specific way, to install the RPM package.
  • (for Debian) same as above ^ but of course, follow the debuild debian idioms: 
    • create a rules file using do-component-build
    • create a compat file, please use version 9 for new packages
    • create a control file, please use for new packages:   Build-Depends: debhelper (>= 9) and Standards-Version: 3.9.4 

  • Test it with gradle <your-package>-deb on Ubuntu/Debian or <your-package>-rpm for the others.
    • For DEB: Have a look at the lintian errors and warnings, please try to minimize the numbers. 
  • Finally add a smoke test! This is as easy as adding a new groovy file to bitop-tests/smoke-tests/<your-package>/TestThisStuff.groovy, following conventions that others have created. 

3) As always, we will improve on the directions above, but this should help to get you started. .

 


Helpful docs on bigtop packaging (will expand this table over time). 

DescriptionURL
 

Romans talk on RPMs vs Tarballs and BigTop Packaging
Widget Connector
urlhttps://www.youtube.com/watch?v=N9-Ad7e7zmA
 

Walkthrough of RPM spec for hadoop in BigTop

http://jayunit100.blogspot.com/2014/04/how-bigtop-packages-hadoop.html

 

RPM Macros
http

https://

www.rpm.org/wiki/PackagerDocs/Macros 

RPM %Files

http

rpm-packaging-guide.github.io/#rpm-macros
https://

www

docs.

rpm

fedoraproject.org/

max

en-

rpm-snapshot/s1-rpm-inside-files-list-directives.html

US/packaging-guidelines/RPMMacros/


RPM %Files

https://rpm-packaging-guide.github.io/#files
 


Debian Policieshttps://www.debian.org/doc/debian-policy/