All Projects → dawidd6 → deber

dawidd6 / deber

Licence: MIT License
📦🐋 Debian packaging with Docker

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to deber

Debreate
A utility for creating Debian packages.
Stars: ✭ 70 (+250%)
Mutual labels:  debian, packaging
Nginx Builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 123 (+515%)
Mutual labels:  builder, debian
Exrm deb
Create a deb for your elixir release with ease
Stars: ✭ 75 (+275%)
Mutual labels:  debian, packaging
Fpm Within Docker
Leverage fpm inside pre-baked docker images in order to build and test native DEB and RPM packages.
Stars: ✭ 80 (+300%)
Mutual labels:  debian, packaging
Nginx-builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 143 (+615%)
Mutual labels:  builder, debian
Open Build Service
Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
Stars: ✭ 599 (+2895%)
Mutual labels:  debian, packaging
Aptly
aptly - Debian repository management tool
Stars: ✭ 2,065 (+10225%)
Mutual labels:  debian, packaging
Py2deb
Python to Debian package converter
Stars: ✭ 272 (+1260%)
Mutual labels:  debian, packaging
duprkit
Debian User Recipe Toolkit [Unofficial]
Stars: ✭ 14 (-30%)
Mutual labels:  debian, debian-packaging
rabbitmq-server-release
RabbitMQ packaging and release engineering bits that do not belong to the Concourse pipelines.
Stars: ✭ 13 (-35%)
Mutual labels:  debian, packaging
debianopt-repo
Additional debian repository for awesome open-source projects.
Stars: ✭ 47 (+135%)
Mutual labels:  debian, debian-packaging
python-deb-pkg-tools
Debian packaging tools
Stars: ✭ 36 (+80%)
Mutual labels:  debian, packaging
debian-packaging-for-the-modern-developer
Debian packaging tutorials for the modern developer
Stars: ✭ 347 (+1635%)
Mutual labels:  debian, debian-packaging
debian-packaging
Create Debian packages of non-free, closed-source and other software.
Stars: ✭ 19 (-5%)
Mutual labels:  debian, debian-packaging
dist-detect
Try to determine what Linux/Unix distribution is running on a remote host and get a hint if security updates are applied.
Stars: ✭ 14 (-30%)
Mutual labels:  debian
capsulecd
Continuous Delivery for automating package releases (npm, cookbooks, gems, pip, jars, etc)
Stars: ✭ 96 (+380%)
Mutual labels:  packaging
dawgmon
dawg the hallway monitor - monitor operating system changes and analyze introduced attack surface when installing software
Stars: ✭ 52 (+160%)
Mutual labels:  debian
uibuilder.nim
UI prototyping w/ Glade for lazy me
Stars: ✭ 21 (+5%)
Mutual labels:  builder
repogen
Easy-to-use signed APT repository generator with a web-based package browser.
Stars: ✭ 34 (+70%)
Mutual labels:  debian
8821au-20210708
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets - v5.12.5.2
Stars: ✭ 40 (+100%)
Mutual labels:  debian

deber

GoDoc go report card latest tag

Debian + Docker = deber

Utility made with simplicity in mind to provide an easy way for building Debian packages in Docker containers.

Screencast

asciicast

Features

  • Build packages for Debian and Ubuntu
  • Use official Debian and Ubuntu images from DockerHub
  • Automatically determine if target distribution is Ubuntu or Debian by querying DockerHub API
  • Skip already ran steps (not every one)
  • Install extra local packages in container
  • Plays nice with gbp-buildpackage
  • Easy local package dependency resolve
  • Don't clutter your parent directories with .deb, .dsc and company
  • Every successfully built package goes to local repo automatically so you can easily build another package that depends on previous one
  • Ability to provide custom dpkg-buildpackage and lintian options
  • Packages downloaded by apt are stored in temporary directory, to avoid repetitive unnecessary network load
  • Option to drop into interactive bash shell session in container, for debugging or other purposes
  • Use network in build process or not
  • Automatically rebuilds image if old enough

Installation

Homebrew

brew install dawidd6/tap/deber

Source

go install github.com/dawidd6/deber@latest

Usage

I recommend to use deber with gbp if possible, but it will work just fine as a standalone builder, like sbuild or pbuilder.

Let's assume that you are in directory with already debianized source, have orig upstream tarball in parent directory and you want to build a package. Just run:

deber

or if you use gbp and have builder = deber in gbp.conf

gbp buildpackage

If you run it first time, it will build Docker image and then proceed to build your package.

To make use of packages from archive to build another package, specify desired directories with built artifacts and deber will take them to consideration when installing dependencies:

deber -p ~/deber/unstable/pkg1/1.0.0-1 -p ~/deber/unstable/pkg2/2.0.0-2

FAQ

Okay everything went well, but... where the hell is my .deb?!

The location for all build outputs defaults to $HOME/deber. I made it this way, because it was just hard to look at my parent directory, cluttered with .orig.tar.gz, .deb, .changes and God knows what else.

Where is build directory located?

/tmp/$CONTAINER

Where is apt's cache directory located?

/tmp/$IMAGE

How images built by deber are named?

deber:$DIST

I have already built image but it is building again?!

Probably because it is 14 days old and deber decided to update it.

How to build a package for different distributions?

Make a new entry with desired target distribution in debian/changelog and run deber.

Or specify the desired distribution with --distribution option.

How to cross-build package for different architecture?

This is not implemented yet. But I'm planning to make use of qemu or something else.

CONTRIBUTING

I appreciate any contributions, so feel free to do so!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].