A modern take on the Debian archive.
This repository has been forked (in the traditional sense of the word) from Richard Crowley's freight repository. A fork had become necessary because the main project was not actively maintained and serious issues had started to crop up. While fixes and improvements were available in various freight GitHub forks, they were not merged to the main project. This fork and the associated GitHub organization, freight-team, attempts to fix these issues.
Install Freight and create a minimal configuration in /usr/local/etc/freight.conf
or /etc/freight.conf
as appropriate containing the name of your GPG key:
GPG="example@example.com"
Add packages to particular distros:
freight add foobar_1.2.3-1_all.deb apt/squeeze apt/lucid apt/natty
Build the cache of all the files needed to be accepted as a Debian archive:
freight cache
If your system has GnuPG 2.x make sure that a gpg-agent is running and that you have installed a pinentry package (e.g. pinentry-curses) that suits your needs. On freight 0.3.11 and older you may also need to set the GPG_TTY environment variable like this:
export GPG_TTY=$(tty)
Serve /var/cache/freight
via your favorite web server and install it as an APT source:
echo "deb http://example.com $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/example.list
sudo wget -O /etc/apt/trusted.gpg.d/example.gpg http://example.com/keyring.gpg
sudo apt-get update
sudo apt-get -y install foobar
Make sure your webserver is configured to follow symlinks inside of the hosted directory.
git clone https://github.com/freight-team/freight.git
cd freight && make && sudo make install
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|sudo apt-key add -
echo "deb http://build.openvpn.net/debian/freight_team $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/freight.list
sudo apt-get update
sudo apt-get -y install freight
You need build-essential
package installed. Clone the freight repository, build a package and install it:
git clone https://github.com/freight-team/freight.git
cd freight && dpkg-buildpackage -uc -us -b
sudo dpkg -i ../freight_<version>-<build>_all.deb
EL users must first configure EPEL.
yum -y install freight
There's also French documentation assembled by Valérian Beaudoin.
Freight is BSD-licensed
Shellcheck and shfmt are used to ensure consistency, please see the Travis configuration for the actual tests.
The Freight test suite can be executed by running make check
from any git checkout of this repository. git and GnuPG are required for most tests, and extended tests require apt.
Contributions should include a new test case where possible by extending one or more of the test/*.bats
files.
It's easy to run the full test suite in Docker. The following command will build
a Docker image with the necessary packages and run make check
inside a Docker
container:
docker run -ti --rm -v $(pwd):/freight -u $(id -u) -w /freight $(docker build -q .) make check