- Change how patch failures are handled. Previously patch failures were ignored and could be easily overlooked, now a failure in applying/reading a patch results in termination of a job
- Fix checks for default runtime socket
- Fix dependencies resolution for custom images. As stated in the documentation, when there are dependencies specified for a simple image like
pkger-rpm
they should be shared with custom RPM based distros. Previously this was not the case.
- Add support for env variables in git source url
- Fix builds using podman runtime
- Remove
podman
configuration option and cli parameter. pkger will automatically determine wether the provided uri is a Podman or Docker daemon. - Fix filesystem sources not being extracted in the container
- Rename
--docker-uri
option to--runtime-uri
and make it global (no longer part of build and init command) - Rename
docker_uri
configuration option toruntime_uri
- Add
--podman
global option andpodman
boolean configuration option that decides wether Podman runtime should be used for containers. git
dependency is no longer needed in a build image as pkger will now clone the repository by itself and upload it to the container- Support for standard proxy environment variables like
http_proxy
,https_proxy
andno_proxy
when pulling a repository - Output of
list
command is now sorted alphabetically - Cleanup build spawning logic. There is now a maximum number of builds which is number of cpus of docker/podman host.
- Add ability to specify multiple sources
- Fix uploading local file/directory sources
- Add RPM description as summary when summary not provided
- Update repositories and install dependencies in the same step so that the update layer doesn't get cached. It caused problems when a new package was added to a repository but not seen when trying to install the dependencies
- Add a subcommand to remove a recipe or an image
- Add a way to specify multiple versions for a recipe
- Add a
versions
field tocmd
to specify on which versions of recipe to run a command - Add a way to specify a base recipe with
from: base-recipe
. More information in the docs - Add
--no-color
option that disables colored output - Add
--output-dir
flag tobuild
subcommand to override output directory for this build - Add
no_color
config option to disable color output globally in configuration - Add
check connection
subcommand that verifies the connection to the container runtime - Add aliases for most common subcommands like
rm
forremove
,ls
forlist
,b
forbuild
and so on
- Dependencies defined for default images like
pkger-deb
orpkger-rpm
will be used for custom images using the same output target. This means that all images used for building RPM will use dependencies defined forpkger-rpm
- cleaner recipes ;) - Add a
copy
subcommand that can copy a recipe or an image #80 - Fix heavy cpu consumption. pkger would consume a whole cpu core constantly just for checking the ctrl-c signal.
- Clean repository cache before installing dependencies
- Add a way to specify
postinst
script during DEB build - Filter out invalid characters from the containers name. This could happen when a package contained characters not matching
[a-zA-Z0-9_.-]
regex. - Add revision number to DEB package name
- Add a way to apply patches only on specified images.
- Add
--log-dir
flag as well aslog_dir
config setting to specify directory where all output should end up. - Remove
--filter
flag andfilter
config setting.
- Add
DEBIAN_FRONTEND=noninteracitve
when doing a DEB build so that whentzdata
is installed as dependency it won't stop a build - Don't use
setarch
when arch is all/noarch - Make Ctrl-C cancellation instantaneous, no more waiting for the jobs to finish
- Use Rocky Linux for simple RPM builds
- Add alpine APK target #75
- Add
print-completions
subcommand that prints shell completions to stdout. Supported shells are: bash, zsh, fish, powershell, elvish - Add option to upload private signing key for APK build
- Use Debian for simple DEB builds
- Add configuration option to change default docker images used for simple builds
- Use default OS config directory instead of home directory to read the configuration file by default.
- Add
init
subcommand that creates necessary directories and adds a configuration file. - Add
edit
subcommand that invokes$EDITOR
and lets users easily edit recipes and images with the default editor. - Remove
gen-recipe
subcommand and addnew <recipe|image>
subcommand that creates the directories for the new recipes and images as well as the files inside. - Add ability to specify the same set of dependencies for multiple images at once by joining the names with the
+
sign like this:image1+image2+image3: [ package1, package2 ]
- Add
--raw
flag tolist
subcommand to disable colored output. - Add
--verbose
flag tolist
subcommand to display additional fields. - When building a
rpm
package asrc.rpm
will be downloaded as well.
- If at least one task fails to build pkger will now return with exit code 1 #66
--quiet
flag now suppresses only container output, normal info output is still available #67pkger build
will now display a warning with instructions on how to start a build #68- Use appropriate cache dir on each OS to store images state #71
- Automatically calculate
Installed-Size
when building DEB packages #72 - Users can now specify
filter
in the configuration so that if one wants to format the output in a particular way on each build they don't have to pass the--filter
CLI parameter every time. - Fix a typo in deb field -
enchances
->enhances
- Images are now be defined in the global configuration file. Previously users would have to define an image with a
target or os on each recipe, now recipe only requires the image name , and the definition is in the configuration.
WARNING! this makes old state files not compatible and requires manual deletion of
$XDG_CACHE_HOME/pkger.state
file. #73 - Add
list packages
subcommand that lists built packages from output directory. - Add
clean-cache
subcommand that deletes the cached state from OS. Use this to migrate pkger to the newest version. - Improved error messages during initialization now contain full context of how the error originated.
- Save image state only when it changed.
- Automatically convert
_
to-
when building a DEB. Debian packages don't allow underscores in package names. - Add
all_images
field to recipe metadata so that if a recipe is used with all images they don't have to be listed one by one. - Add a warning when image specified as cli arg is not found in recipe image targets.
- Add support for extracting all types of tar archives as source.
- Fix rpm build not working when packaging files with spaces.
- Add an option to set
AutoReqProv
value during RPM build (used to disable automatic dependency processing). - Add
RECIPE
,RECIPE_VERSION
,RECIPE_RELEASE
environment variables that can be used during the build. - Enable usage of environment variables for
working_dir
andsource
fields of recipe. This can greatly reduce the number of changes one has to make when adding a recipe for other version. #74
- Add an option to sign RPMs with a GPG key #55
- Add an option to sign DEBs with a GPG key #56
- Fix image caching
- Add
forward_ssh_agent
configuration option to forward the SSH authentication socket from the host machine to the container. #58 - Add
--no-sign
command line argument tobuild
command so that users can disable signing for the particular build even when the gpg signing is enabled in the configuration. - Move
forward_ssh_agent
option tossh
configuration and rename it toforward_agent
#60 - Add
disable_key_verification
tossh
configuration #60 - Add a warning when trying to build a recipe without a target
- Fix applying patches with relative paths #64
- Recipes can now have a
recipe.yml
orrecipe.yaml
file where previously only.yml
was accepted #64
- Configure script now has a working directory set to
$PKGER_BLD_DIR
- Recipes and config files now use YAML syntax #52
- Add extra field to metadata that specifies image os if pkger fails to find it out
- Add ability to apply patches to source based on target image
- Directory structure of
output_dir
changed, now all images have a separate directory with output packages - Fix ubuntu builds
- Add
list < recipes | images >
subcommand
- Fix setting default working directory in build and install phase
- pkger doesn't start a build by default, there is a separate subcommand
build
for that now. #22 - Add
gen-recipe
subcommand to declaratively generate recipes #22 - Build and install scripts now correctly have a working directory set #23
- Allow overwriting default working directory of each script phase #24
- Add option to change default shell in recipe scripts #26
- Excluding paths from final package now works #36
- Actually check if image should be rebuilt in docker #37
- Cache images with dependencies installed, a lot of data saved on pulled dependencies #38
- Dependencies now use the TOML syntax instead of a custom one #39
- Commands in configure, build and install scripts now use TOML syntax #40
- Add
--trace
option that sets log level of pkger to trace and make--debug
actually set debug - Add some more fields for RPM builds, rename
section
togroup
and use it for RPM as well as DEB #41 - Separate RPM and DEB fields in recipe metadata #42
- Add missing fields for DEB builds, add
url
field to metadata #43 - Add initial PKG target #44
- Make
release
andepoch
fields of metadata global rather than RPM specific - Add some missing extra fields in metadata for PKG #45
- Add optional boolean flags in recipe scripts that specify on which targets each command should be run
- Add a simple oneshot build without custom images #46