Abuild and Helpers
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild package and its friends are installed automatically along with the alpine-sdk package.
apk add alpine-sdk
The git repository always contains the latest version of the scripts, example-files, and makefiles.
Building and maintaining packages
abuild
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild package and its friends are installed automatically along with the alpine-sdk package.
apk add alpine-sdk
The git repository always contains the latest version of the scripts, example-files, and makefiles.
Building and maintaining packages
abuild
Template loop detected: Include:Abuild
abuild-rootbld
Install package abuild-rootbld
:
apk add abuild-rootbld
You may now build your packages from source in an unprivileged sandbox based on bubblewrap with the command:
abuild rootbld
rootbld
assumes your APKBUILD file is in the ~/aports whose structure like aports or you need to set environment variable APORTSDIR
to current directory.
If the build process needs network access there has to bet set the net option in APKBUILD.
Note that using rootbld
inside a docker container requires additional configuration.
abump
Template loop detected: Include:Abump
apkgrel
Generating new APKBUILDs
newapkbuild
To create the actual APKBUILD file newapkbuild can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file in the given directory, and fill some variables if those are provided.
Template loop detected: Include:Newapkbuild
apkbuild-cpan
apkbuild-pypi
Template loop detected: Include:Apkbuild-pypi
Signing packages and indexes
abuild-sign
abuild-sign is for signing indexes.
abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE...
abuild-sign options
- -h Show this help
- -k The private key to use for signing
- -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY
abuild-tar
apkbuild-tar [--hash[=<algorithm>]] [--cut]
apkbuild-tar options
- --hash[=sha1|md5] Read tar archive from stdin, precalculate hash for regular entries and output tar archive on stdout
- --cut Remove the end of file tar record
buildrepo
buildrepo creates a local package repository for you.
buildrepo [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ] [-r DEPREPO] REPOSITORY...
buildrepo options
- -a Set the aports base dir to APORTSDIR instead of $HOME/aports
- -d Set destination repository base dir to REPODIR instead of $HOME/packages
- -h Show this help and exit
- -l Send build to logfile, prefixed by LOGPREFIX
- -p Purge obsolete packages from REPODIR after build
- -r Dependencies are found in DEPREPO
Setting up the build environment
abuild-keygen
For abuild a public/private rsa key pair is needed. abuild-keygen does the generation of those keys for you.
abuild-keygen -a -i
abuild-keygen options
- -a Set PACKAGER_PRIVKEY=<generated key> in abuild.conf
- -i Install public key into /etc/apk/keys using sudo
- -h Show this help
- -n Non-interactive. Use defaults
- -q Quiet mode
Creating keys manually
In older versions of Alpine, we had to manually create keys for signing packages and indexes. This explains how. Nowadays you can just use abuild-keygen
.
Since the public key needs to be unique for each developer, the email address should be used as name for the public key.
Create the private key:
openssl genrsa -out emailaddress.priv 2048
Create the public key:
openssl rsa -in emailaddress.priv -pubout -out /etc/apk/keys/emailaddress
The public key should be distributed and installed into /etc/apk/keys on the alpine box that will install the packages. The private key, when created by abuild
, is installed into ~/.abuild/$something.rsa. This basically means that the main developer's public keys should be in /etc/apk/keys on all Alpine boxes.
abuild-rootbld
Install package abuild-rootbld
:
apk add abuild-rootbld
You may now build your packages from source in an unprivileged sandbox based on bubblewrap with the command:
abuild rootbld
rootbld
assumes your APKBUILD file is in the ~/aports whose structure like aports or you need to set environment variable APORTSDIR
to current directory.
If the build process needs network access there has to bet set the net option in APKBUILD.
Note that using rootbld
inside a docker container requires additional configuration.
abump
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild package and its friends are installed automatically along with the alpine-sdk package.
apk add alpine-sdk
The git repository always contains the latest version of the scripts, example-files, and makefiles.
Building and maintaining packages
abuild
Template loop detected: Include:Abuild
abuild-rootbld
Install package abuild-rootbld
:
apk add abuild-rootbld
You may now build your packages from source in an unprivileged sandbox based on bubblewrap with the command:
abuild rootbld
rootbld
assumes your APKBUILD file is in the ~/aports whose structure like aports or you need to set environment variable APORTSDIR
to current directory.
If the build process needs network access there has to bet set the net option in APKBUILD.
Note that using rootbld
inside a docker container requires additional configuration.
abump
Template loop detected: Include:Abump
apkgrel
Generating new APKBUILDs
newapkbuild
To create the actual APKBUILD file newapkbuild can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file in the given directory, and fill some variables if those are provided.
Template loop detected: Include:Newapkbuild
apkbuild-cpan
apkbuild-pypi
Template loop detected: Include:Apkbuild-pypi
Signing packages and indexes
abuild-sign
abuild-sign is for signing indexes.
abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE...
abuild-sign options
- -h Show this help
- -k The private key to use for signing
- -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY
abuild-tar
apkbuild-tar [--hash[=<algorithm>]] [--cut]
apkbuild-tar options
- --hash[=sha1|md5] Read tar archive from stdin, precalculate hash for regular entries and output tar archive on stdout
- --cut Remove the end of file tar record
buildrepo
buildrepo creates a local package repository for you.
buildrepo [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ] [-r DEPREPO] REPOSITORY...
buildrepo options
- -a Set the aports base dir to APORTSDIR instead of $HOME/aports
- -d Set destination repository base dir to REPODIR instead of $HOME/packages
- -h Show this help and exit
- -l Send build to logfile, prefixed by LOGPREFIX
- -p Purge obsolete packages from REPODIR after build
- -r Dependencies are found in DEPREPO
Setting up the build environment
abuild-keygen
For abuild a public/private rsa key pair is needed. abuild-keygen does the generation of those keys for you.
abuild-keygen -a -i
abuild-keygen options
- -a Set PACKAGER_PRIVKEY=<generated key> in abuild.conf
- -i Install public key into /etc/apk/keys using sudo
- -h Show this help
- -n Non-interactive. Use defaults
- -q Quiet mode
Creating keys manually
In older versions of Alpine, we had to manually create keys for signing packages and indexes. This explains how. Nowadays you can just use abuild-keygen
.
Since the public key needs to be unique for each developer, the email address should be used as name for the public key.
Create the private key:
openssl genrsa -out emailaddress.priv 2048
Create the public key:
openssl rsa -in emailaddress.priv -pubout -out /etc/apk/keys/emailaddress
The public key should be distributed and installed into /etc/apk/keys on the alpine box that will install the packages. The private key, when created by abuild
, is installed into ~/.abuild/$something.rsa. This basically means that the main developer's public keys should be in /etc/apk/keys on all Alpine boxes.
apkgrel
Generating new APKBUILDs
newapkbuild
To create the actual APKBUILD file newapkbuild can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file in the given directory, and fill some variables if those are provided.
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild package and its friends are installed automatically along with the alpine-sdk package.
apk add alpine-sdk
The git repository always contains the latest version of the scripts, example-files, and makefiles.
Building and maintaining packages
abuild
Template loop detected: Include:Abuild
abuild-rootbld
Install package abuild-rootbld
:
apk add abuild-rootbld
You may now build your packages from source in an unprivileged sandbox based on bubblewrap with the command:
abuild rootbld
rootbld
assumes your APKBUILD file is in the ~/aports whose structure like aports or you need to set environment variable APORTSDIR
to current directory.
If the build process needs network access there has to bet set the net option in APKBUILD.
Note that using rootbld
inside a docker container requires additional configuration.
abump
Template loop detected: Include:Abump
apkgrel
Generating new APKBUILDs
newapkbuild
To create the actual APKBUILD file newapkbuild can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file in the given directory, and fill some variables if those are provided.
Template loop detected: Include:Newapkbuild
apkbuild-cpan
apkbuild-pypi
Template loop detected: Include:Apkbuild-pypi
Signing packages and indexes
abuild-sign
abuild-sign is for signing indexes.
abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE...
abuild-sign options
- -h Show this help
- -k The private key to use for signing
- -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY
abuild-tar
apkbuild-tar [--hash[=<algorithm>]] [--cut]
apkbuild-tar options
- --hash[=sha1|md5] Read tar archive from stdin, precalculate hash for regular entries and output tar archive on stdout
- --cut Remove the end of file tar record
buildrepo
buildrepo creates a local package repository for you.
buildrepo [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ] [-r DEPREPO] REPOSITORY...
buildrepo options
- -a Set the aports base dir to APORTSDIR instead of $HOME/aports
- -d Set destination repository base dir to REPODIR instead of $HOME/packages
- -h Show this help and exit
- -l Send build to logfile, prefixed by LOGPREFIX
- -p Purge obsolete packages from REPODIR after build
- -r Dependencies are found in DEPREPO
Setting up the build environment
abuild-keygen
For abuild a public/private rsa key pair is needed. abuild-keygen does the generation of those keys for you.
abuild-keygen -a -i
abuild-keygen options
- -a Set PACKAGER_PRIVKEY=<generated key> in abuild.conf
- -i Install public key into /etc/apk/keys using sudo
- -h Show this help
- -n Non-interactive. Use defaults
- -q Quiet mode
Creating keys manually
In older versions of Alpine, we had to manually create keys for signing packages and indexes. This explains how. Nowadays you can just use abuild-keygen
.
Since the public key needs to be unique for each developer, the email address should be used as name for the public key.
Create the private key:
openssl genrsa -out emailaddress.priv 2048
Create the public key:
openssl rsa -in emailaddress.priv -pubout -out /etc/apk/keys/emailaddress
The public key should be distributed and installed into /etc/apk/keys on the alpine box that will install the packages. The private key, when created by abuild
, is installed into ~/.abuild/$something.rsa. This basically means that the main developer's public keys should be in /etc/apk/keys on all Alpine boxes.
apkbuild-cpan
apkbuild-pypi
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild package and its friends are installed automatically along with the alpine-sdk package.
apk add alpine-sdk
The git repository always contains the latest version of the scripts, example-files, and makefiles.
Building and maintaining packages
abuild
Template loop detected: Include:Abuild
abuild-rootbld
Install package abuild-rootbld
:
apk add abuild-rootbld
You may now build your packages from source in an unprivileged sandbox based on bubblewrap with the command:
abuild rootbld
rootbld
assumes your APKBUILD file is in the ~/aports whose structure like aports or you need to set environment variable APORTSDIR
to current directory.
If the build process needs network access there has to bet set the net option in APKBUILD.
Note that using rootbld
inside a docker container requires additional configuration.
abump
Template loop detected: Include:Abump
apkgrel
Generating new APKBUILDs
newapkbuild
To create the actual APKBUILD file newapkbuild can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file in the given directory, and fill some variables if those are provided.
Template loop detected: Include:Newapkbuild
apkbuild-cpan
apkbuild-pypi
Template loop detected: Include:Apkbuild-pypi
Signing packages and indexes
abuild-sign
abuild-sign is for signing indexes.
abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE...
abuild-sign options
- -h Show this help
- -k The private key to use for signing
- -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY
abuild-tar
apkbuild-tar [--hash[=<algorithm>]] [--cut]
apkbuild-tar options
- --hash[=sha1|md5] Read tar archive from stdin, precalculate hash for regular entries and output tar archive on stdout
- --cut Remove the end of file tar record
buildrepo
buildrepo creates a local package repository for you.
buildrepo [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ] [-r DEPREPO] REPOSITORY...
buildrepo options
- -a Set the aports base dir to APORTSDIR instead of $HOME/aports
- -d Set destination repository base dir to REPODIR instead of $HOME/packages
- -h Show this help and exit
- -l Send build to logfile, prefixed by LOGPREFIX
- -p Purge obsolete packages from REPODIR after build
- -r Dependencies are found in DEPREPO
Setting up the build environment
abuild-keygen
For abuild a public/private rsa key pair is needed. abuild-keygen does the generation of those keys for you.
abuild-keygen -a -i
abuild-keygen options
- -a Set PACKAGER_PRIVKEY=<generated key> in abuild.conf
- -i Install public key into /etc/apk/keys using sudo
- -h Show this help
- -n Non-interactive. Use defaults
- -q Quiet mode
Creating keys manually
In older versions of Alpine, we had to manually create keys for signing packages and indexes. This explains how. Nowadays you can just use abuild-keygen
.
Since the public key needs to be unique for each developer, the email address should be used as name for the public key.
Create the private key:
openssl genrsa -out emailaddress.priv 2048
Create the public key:
openssl rsa -in emailaddress.priv -pubout -out /etc/apk/keys/emailaddress
The public key should be distributed and installed into /etc/apk/keys on the alpine box that will install the packages. The private key, when created by abuild
, is installed into ~/.abuild/$something.rsa. This basically means that the main developer's public keys should be in /etc/apk/keys on all Alpine boxes.
Signing packages and indexes
abuild-sign
abuild-sign is for signing indexes.
abuild-sign [-hq] [-k PRIVKEY] [-p PUBKEY] INDEXFILE...
abuild-sign options
- -h Show this help
- -k The private key to use for signing
- -p The name of public key. apk add will look for /etc/apk/keys/PUBKEY
abuild-tar
apkbuild-tar [--hash[=<algorithm>]] [--cut]
apkbuild-tar options
- --hash[=sha1|md5] Read tar archive from stdin, precalculate hash for regular entries and output tar archive on stdout
- --cut Remove the end of file tar record
buildrepo
buildrepo creates a local package repository for you.
buildrepo [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ] [-r DEPREPO] REPOSITORY...
buildrepo options
- -a Set the aports base dir to APORTSDIR instead of $HOME/aports
- -d Set destination repository base dir to REPODIR instead of $HOME/packages
- -h Show this help and exit
- -l Send build to logfile, prefixed by LOGPREFIX
- -p Purge obsolete packages from REPODIR after build
- -r Dependencies are found in DEPREPO
Setting up the build environment
abuild-keygen
For abuild a public/private rsa key pair is needed. abuild-keygen does the generation of those keys for you.
abuild-keygen -a -i
abuild-keygen options
- -a Set PACKAGER_PRIVKEY=<generated key> in abuild.conf
- -i Install public key into /etc/apk/keys using sudo
- -h Show this help
- -n Non-interactive. Use defaults
- -q Quiet mode
Creating keys manually
In older versions of Alpine, we had to manually create keys for signing packages and indexes. This explains how. Nowadays you can just use abuild-keygen
.
Since the public key needs to be unique for each developer, the email address should be used as name for the public key.
Create the private key:
openssl genrsa -out emailaddress.priv 2048
Create the public key:
openssl rsa -in emailaddress.priv -pubout -out /etc/apk/keys/emailaddress
The public key should be distributed and installed into /etc/apk/keys on the alpine box that will install the packages. The private key, when created by abuild
, is installed into ~/.abuild/$something.rsa. This basically means that the main developer's public keys should be in /etc/apk/keys on all Alpine boxes.