Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tailhook/bulk
A tool that builds packages, updates package repos, and bumps versions
https://github.com/tailhook/bulk
debian packaging rust versioning
Last synced: about 1 month ago
JSON representation
A tool that builds packages, updates package repos, and bumps versions
- Host: GitHub
- URL: https://github.com/tailhook/bulk
- Owner: tailhook
- License: apache-2.0
- Created: 2015-12-23T00:08:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-02-25T07:12:48.000Z (9 months ago)
- Last Synced: 2024-10-01T15:17:11.969Z (about 2 months ago)
- Topics: debian, packaging, rust, versioning
- Language: Rust
- Homepage:
- Size: 173 KB
- Stars: 9
- Watchers: 4
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE-APACHE
Awesome Lists containing this project
README
====
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 commandIt 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.12.tar.gz
tar -xzf bulk-0.4.12.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 distOr 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 distThis 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.