- 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-rpmthey 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
podmanconfiguration 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-urioption to--runtime-uriand make it global (no longer part of build and init command) - Rename
docker_uriconfiguration option toruntime_uri - Add
--podmanglobal option andpodmanboolean configuration option that decides wether Podman runtime should be used for containers. gitdependency 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_proxyandno_proxywhen pulling a repository - Output of
listcommand 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
versionsfield tocmdto 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-coloroption that disables colored output - Add
--output-dirflag tobuildsubcommand to override output directory for this build - Add
no_colorconfig option to disable color output globally in configuration - Add
check connectionsubcommand that verifies the connection to the container runtime - Add aliases for most common subcommands like
rmforremove,lsforlist,bforbuildand so on
- Dependencies defined for default images like
pkger-deborpkger-rpmwill 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
copysubcommand 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
postinstscript 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-dirflag as well aslog_dirconfig setting to specify directory where all output should end up. - Remove
--filterflag andfilterconfig setting.
- Add
DEBIAN_FRONTEND=noninteracitvewhen doing a DEB build so that whentzdatais installed as dependency it won't stop a build - Don't use
setarchwhen 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-completionssubcommand 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
initsubcommand that creates necessary directories and adds a configuration file. - Add
editsubcommand that invokes$EDITORand lets users easily edit recipes and images with the default editor. - Remove
gen-recipesubcommand 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
--rawflag tolistsubcommand to disable colored output. - Add
--verboseflag tolistsubcommand to display additional fields. - When building a
rpmpackage asrc.rpmwill be downloaded as well.
- If at least one task fails to build pkger will now return with exit code 1 #66
--quietflag now suppresses only container output, normal info output is still available #67pkger buildwill 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-Sizewhen building DEB packages #72 - Users can now specify
filterin 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--filterCLI 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.statefile. #73 - Add
list packagessubcommand that lists built packages from output directory. - Add
clean-cachesubcommand 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_imagesfield 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
AutoReqProvvalue during RPM build (used to disable automatic dependency processing). - Add
RECIPE,RECIPE_VERSION,RECIPE_RELEASEenvironment variables that can be used during the build. - Enable usage of environment variables for
working_dirandsourcefields 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_agentconfiguration option to forward the SSH authentication socket from the host machine to the container. #58 - Add
--no-signcommand line argument tobuildcommand so that users can disable signing for the particular build even when the gpg signing is enabled in the configuration. - Move
forward_ssh_agentoption tosshconfiguration and rename it toforward_agent#60 - Add
disable_key_verificationtosshconfiguration #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.ymlorrecipe.yamlfile where previously only.ymlwas 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_dirchanged, 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
buildfor that now. #22 - Add
gen-recipesubcommand 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
--traceoption that sets log level of pkger to trace and make--debugactually set debug - Add some more fields for RPM builds, rename
sectiontogroupand 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
urlfield to metadata #43 - Add initial PKG target #44
- Make
releaseandepochfields 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