diff --git a/Makefile b/Makefile
index 5c6e257c..9026c4ef 100644
--- a/Makefile
+++ b/Makefile
@@ -22,16 +22,16 @@ apk deb rpm static:
.PHONY: apk-%
apk-%:
- $(MAKE) -C pkg/$* $(foreach release,$(PKG_APK_RELEASES),pkg-cross-apk-$(release))
+ $(MAKE) -C pkg/$* $(foreach release,$(PKG_APK_RELEASES),build-cross-apk-$(release))
.PHONY: deb-%
deb-%:
- $(MAKE) -C pkg/$* $(foreach release,$(PKG_DEB_RELEASES),pkg-cross-deb-$(release))
+ $(MAKE) -C pkg/$* $(foreach release,$(PKG_DEB_RELEASES),build-cross-deb-$(release))
.PHONY: rpm-%
rpm-%:
- $(MAKE) -C pkg/$* $(foreach release,$(PKG_RPM_RELEASES),pkg-cross-rpm-$(release))
+ $(MAKE) -C pkg/$* $(foreach release,$(PKG_RPM_RELEASES),build-cross-rpm-$(release))
.PHONY: static-%
static-%:
- $(MAKE) -C pkg/$* pkg-cross-static
+ $(MAKE) -C pkg/$* build-cross-static
diff --git a/README.md b/README.md
index c8f7070b..4bf08c8b 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,175 @@
## About
This repository creates packages (apk, deb, rpm, static) for various projects
-that can be found in [pkg](pkg) folder.
+and are published as a Docker image on Docker Hub.
## Usage
-_TODO_
+`vars.mk` contains variables that will be used by the main `Makefile` and
+also across projects in [pkg](pkg) folder. It contains the list of apk,
+deb and rpm releases to produce and repos with current versions of projects.
+
+`Makefile` contains targets to build specific or all packages and will output
+to `./bin` folder:
+
+```console
+# build debian packages for buildx project
+$ make deb-buildx
+# build deb and rpm packages for all projects
+$ make deb rpm
+```
+
+Each [project](pkg) has also its own `Makefile`, `Dockerfile` and bake
+definition to build and push packages:
+
+```console
+# build all packages for buildx v0.9.1
+$ cd pkg/buildx/
+$ BUILD_VERSION=v0.9.1 make pkg
+# Push image to dockereng/packaging:buildx-v0.9.1
+$ docker buildx bake --push --set *.tags=dockereng/packaging:buildx-v0.9.1 release
+```
+
+Packages are published to Docker Hub as a Docker image. You can use a tool like [Undock](https://github.com/crazy-max/undock)
+to extract packages:
+
+```shell
+$ undock --wrap --rm-dist --all dockereng/packaging:buildx-v0.9.1 ./bin/undock
+```
+
+
+ tree ./bin/undock
+
+```
+./bin/undock
+├── darwin
+│ ├── amd64
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ └── arm64
+│ └── docker-buildx-plugin_0.9.1.tgz
+├── linux
+│ ├── amd64
+│ │ ├── docker-buildx-plugin-0.9.1-centos7.x86_64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-centos8.x86_64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora33.x86_64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora34.x86_64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora35.x86_64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora36.x86_64.rpm
+│ │ ├── docker-buildx-plugin_0.9.1-debian10_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-debian11_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-r0_x86_64.apk
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_amd64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_amd64.deb
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ ├── arm
+│ │ ├── v6
+│ │ │ ├── docker-buildx-plugin-0.9.1-centos7.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin-0.9.1-centos8.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin-0.9.1-fedora33.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin-0.9.1-fedora34.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin-0.9.1-fedora35.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin-0.9.1-fedora36.armv6hl.rpm
+│ │ │ ├── docker-buildx-plugin_0.9.1-debian10_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-debian11_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-r0_armhf.apk
+│ │ │ ├── docker-buildx-plugin_0.9.1-raspbian10_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-raspbian11_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_armel.deb
+│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_armel.deb
+│ │ │ └── docker-buildx-plugin_0.9.1.tgz
+│ │ └── v7
+│ │ ├── docker-buildx-plugin-0.9.1-centos7.armv7hl.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-centos8.armv7hl.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora33.armv7hl.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora34.armv7hl.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora35.armv7hl.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora36.armv7hl.rpm
+│ │ ├── docker-buildx-plugin_0.9.1-debian10_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-debian11_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-r0_armv7.apk
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_armhf.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_armhf.deb
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ ├── arm64
+│ │ ├── docker-buildx-plugin-0.9.1-centos7.aarch64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-centos8.aarch64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora33.aarch64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora34.aarch64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora35.aarch64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora36.aarch64.rpm
+│ │ ├── docker-buildx-plugin_0.9.1-debian10_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-debian11_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-r0_aarch64.apk
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_arm64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_arm64.deb
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ ├── ppc64le
+│ │ ├── docker-buildx-plugin-0.9.1-centos7.ppc64le.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-centos8.ppc64le.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora33.ppc64le.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora34.ppc64le.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora35.ppc64le.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora36.ppc64le.rpm
+│ │ ├── docker-buildx-plugin_0.9.1-debian10_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-debian11_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-r0_ppc64le.apk
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_ppc64el.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_ppc64el.deb
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ ├── riscv64
+│ │ ├── docker-buildx-plugin-0.9.1-centos7.riscv64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-centos8.riscv64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora33.riscv64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora34.riscv64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora35.riscv64.rpm
+│ │ ├── docker-buildx-plugin-0.9.1-fedora36.riscv64.rpm
+│ │ ├── docker-buildx-plugin_0.9.1-debian10_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-debian11_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-r0_riscv64.apk
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_riscv64.deb
+│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_riscv64.deb
+│ │ └── docker-buildx-plugin_0.9.1.tgz
+│ └── s390x
+│ ├── docker-buildx-plugin-0.9.1-centos7.s390x.rpm
+│ ├── docker-buildx-plugin-0.9.1-centos8.s390x.rpm
+│ ├── docker-buildx-plugin-0.9.1-fedora33.s390x.rpm
+│ ├── docker-buildx-plugin-0.9.1-fedora34.s390x.rpm
+│ ├── docker-buildx-plugin-0.9.1-fedora35.s390x.rpm
+│ ├── docker-buildx-plugin-0.9.1-fedora36.s390x.rpm
+│ ├── docker-buildx-plugin_0.9.1-debian10_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-debian11_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-r0_s390x.apk
+│ ├── docker-buildx-plugin_0.9.1-raspbian10_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-raspbian11_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-ubuntu1804_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-ubuntu2004_s390x.deb
+│ ├── docker-buildx-plugin_0.9.1-ubuntu2204_s390x.deb
+│ └── docker-buildx-plugin_0.9.1.tgz
+└── windows
+ ├── amd64
+ │ └── docker-buildx-plugin_0.9.1.zip
+ └── arm64
+ └── docker-buildx-plugin_0.9.1.zip
+
+15 directories, 109 files
+```
+
## Contributing
diff --git a/pkg/buildx/Makefile b/pkg/buildx/Makefile
index 38ece7fb..034f0b34 100644
--- a/pkg/buildx/Makefile
+++ b/pkg/buildx/Makefile
@@ -14,12 +14,15 @@
include ../../vars.mk
-BASEDIR ?= $(CURDIR)
DESTDIR ?= $(BASEDIR)/bin/local
BAKE_TARGET ?= pkg
word-hypen = $(word $2,$(subst -, ,$1))
+$(info $$BASEDIR = $(BASEDIR))
+$(info $$BUILDX_REPO = $(BUILDX_REPO))
+$(info $$BUILDX_VERSION = $(BUILDX_VERSION))
+
.PHONY: pkg
pkg: pkg-apk pkg-deb pkg-rpm pkg-static
diff --git a/pkg/compose/Makefile b/pkg/compose/Makefile
index 38ece7fb..b4cad14e 100644
--- a/pkg/compose/Makefile
+++ b/pkg/compose/Makefile
@@ -14,12 +14,15 @@
include ../../vars.mk
-BASEDIR ?= $(CURDIR)
DESTDIR ?= $(BASEDIR)/bin/local
BAKE_TARGET ?= pkg
word-hypen = $(word $2,$(subst -, ,$1))
+$(info $$BASEDIR = $(BASEDIR))
+$(info $$COMPOSE_REPO = $(COMPOSE_REPO))
+$(info $$COMPOSE_VERSION = $(COMPOSE_VERSION))
+
.PHONY: pkg
pkg: pkg-apk pkg-deb pkg-rpm pkg-static
diff --git a/vars.mk b/vars.mk
index 70dac781..057bee36 100644
--- a/vars.mk
+++ b/vars.mk
@@ -16,7 +16,7 @@ PKG_APK_RELEASES ?= r0
PKG_DEB_RELEASES ?= debian10 debian11 ubuntu1804 ubuntu2004 ubuntu2204 raspbian10 raspbian11
PKG_RPM_RELEASES ?= centos7 centos8 fedora33 fedora34 fedora35 fedora36
-export BASEDIR = $(CURDIR)
+export BASEDIR ?= $(CURDIR)
export PKG_VENDOR ?= Docker
export PKG_PACKAGER ?= Docker