From 2fd77170950c23da77a43345b937e3119a5911b3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 29 Aug 2022 10:45:55 +0200 Subject: [PATCH] Fix Makefile and improve README Signed-off-by: CrazyMax --- Makefile | 8 +-- README.md | 168 ++++++++++++++++++++++++++++++++++++++++++- pkg/buildx/Makefile | 5 +- pkg/compose/Makefile | 5 +- vars.mk | 2 +- 5 files changed, 179 insertions(+), 9 deletions(-) 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