| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
tetra is a tool to help you build RPM packages for Java projects.
Packaging of Java projects is sometimes hard - mainly because build tools like Maven partially overlap with distro ones like RPM.
See MOTIVATION.md for further information.
You can install tetra via RubyGems or by building and installing it yourself.
# via RubyGems
gem install tetra
# from source
rake installTest can be found in the spec/ folder and are divided into fine (more similar to unit tests) and coarse (more similar to integration tests). To run tests manually, simply execute rake or bundle exec rake. With every Pull Request against master and consecutive pushes to that PR, several GitHub Actions tests will run automatically.
Building a package with tetra is quite unusual — this is a deliberate choice, so don't worry. Basic steps are:
Done!
During the dry-run tetra:
Note that with tetra you are not building all dependencies from source - build dependencies are aggregated in a binary-only "kit" package. This is typically sufficient to fulfill open source licenses and to have a repeatable, networkless build.
First, grab the sources:
wget https://archive.apache.org/dist/commons/collections/source/commons-collections4-4.5.0-M2-src.tar.gzSecond, create a new tetra project named commons-collections based on those sources:
tetra init commons-collections commons-collections4-4.5.0-M2-src.tar.gz
cd commons-collections/src/commons-collections4-4.5.0-M2-srcThird, you need to show tetra how to build your package. Run tetra dry-run and a new subshell will open, in there do anything you would normally do to build the package (in this case, run Maven):
tetra dry-run
mvn package
^DNote that you don't even need to install Maven - tetra bundles a copy in kit/ and uses it by default! Also note that this being a dry-run build, sources will be brought back to their original state after it finishes to ensure repeatability.
Finally, generate build scripts, spec files and tarballs in the packages/ directory:
tetra generate-allNote that tetra will generate files for the commons-collections package and all binary-only build-time dependencies in the packages/ folder.
In more complex cases building a package will require some special tweaks. We are trying to cover the most common in the SPECIAL_CASES.md file.
An in-depth discussion of this project's motivation is available in the MOTIVATION.md file.
tetra is considered stable. At the moment tetra is tested on openSUSE and on Ubuntu with GitHub Actions.
Please see SECURITY.md for more information.
tetra's Git repo is available on GitHub.
MIT license.
| Back | FazBrowse Home | New Git URL |