==== Bulk ==== Bulk is a super-simple packaging utility. It's similar to fpm_ but implemented in rust. It does three things for you: * Makes directory of files into deb package * Maintains a number of repos (stable, testing...) from list of packages * Updates your version numbers .. _fpm: https://github.com/jordansissel/fpm :Status: Alpha Why? ==== Default packaging tools for debian are too complex. Also I wanted: 1. Simple to install zero-dependency tool (comparing to fpm_) 2. Experiment a little bit with reproducible packages (i.e. omit timestamps from a package) 3. Simple utility to maintain (multiple) repositories 4. Add tiny wrapper around vagga to actually build the packages for all distributions by single command It turned out that all functionality I needed from fpm_ could be reimplemented in a night, so we have a new tool, ready for the new experiments. Limitations =========== Bulk should be simple. While we may lift few limitation in future versions we don't aim to support all the features. Limitations are: 1. No install scripts 2. All files owned by root and no timestamps 3. No devices, sockets, empty dirs and other possible habitants of tar/deb archive 4. Limited support of package metadata (focusing on common between different linux distributions) Installation ============ Currently we provide static binary for x86_64: wget http://files.zerogw.com/bulk/bulk-0.4.9.tar.gz tar -xzf bulk-0.4.9.tar.gz -C / Or you can install it with cargo: cargo install bulk This will install bulk in ``/usr/bin``. Ubuntu packages will be available shortly. How To Use ========== Build program and install to some directory, say ``pkg``. Put some metadata into ``bulk.yaml``. Then pack it into a debian package:: bulk pack --config bulk.yaml --dir pkg --dest-dir dist And you will get a package in ``dist`` directory. You may find the example ``bulk.yaml`` in this repository. Building Packages ================= Just a few examples on how to prepare things to be packaged. With autotools it looks like this:: ./configure --prefix=/usr make rm -rf pkg make install DESTDIR=$(pwd)/pkg bulk pack --config bulk.yaml --dir pkg --dest-dir dist Or with new ``cargo install``:: rm -rf pkg cargo install PACKAGE_NAME --root ./pkg/usr rm pkg/usr/.crates.toml bulk pack --config bulk.yaml --dir pkg --dest-dir dist This way you may package crate from crates.io. ======= License ======= Licensed under either of * Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT) at your option. ------------ Contribution ------------ Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.