From 6d654b3ca099b66167f4deb0a4bc4e1bda06d22a Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 02:07:03 -0500 Subject: [PATCH] feat: add support for arm64 Refs dokku/dokku#4974 --- Makefile | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8e4c1ce..a2a4fb4 100644 --- a/Makefile +++ b/Makefile @@ -48,8 +48,10 @@ targets = $(addsuffix -in-docker, $(LIST)) build: prebuild @$(MAKE) build/darwin/$(NAME) @$(MAKE) build/linux/$(NAME)-amd64 + @$(MAKE) build/linux/$(NAME)-arm64 @$(MAKE) build/linux/$(NAME)-armhf @$(MAKE) build/deb/$(NAME)_$(VERSION)_amd64.deb + @$(MAKE) build/deb/$(NAME)_$(VERSION)_arm64.deb @$(MAKE) build/deb/$(NAME)_$(VERSION)_armhf.deb @$(MAKE) build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm @@ -79,6 +81,11 @@ build/linux/$(NAME)-amd64: -ldflags "-s -w -X main.Version=$(VERSION)" \ -o build/linux/$(NAME)-amd64 cmd/sigil.go +build/linux/$(NAME)-arm64: + mkdir -p build/linux + CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -asmflags=-trimpath=/src -gcflags=-trimpath=/src \ + -ldflags "-s -w -X main.Version=$(VERSION)" \ + -o build/linux/$(NAME)-arm64 cmd/sigil.go build/linux/$(NAME)-armhf: mkdir -p build/linux CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -a -asmflags=-trimpath=/src -gcflags=-trimpath=/src \ @@ -105,6 +112,26 @@ build/deb/$(NAME)_$(VERSION)_amd64.deb: build/linux/$(NAME)-amd64 build/linux/$(NAME)-amd64=/usr/bin/$(BINARY_NAME) \ LICENSE=/usr/share/doc/$(NAME)/copyright +build/deb/$(NAME)_$(VERSION)_arm64.deb: build/linux/$(NAME)-armhf + export SOURCE_DATE_EPOCH=$(shell git log -1 --format=%ct) \ + && mkdir -p build/deb \ + && fpm \ + --architecture arm64 \ + --category utils \ + --description "$$PACKAGE_DESCRIPTION" \ + --input-type dir \ + --license 'MIT License' \ + --maintainer "$(MAINTAINER_NAME) <$(EMAIL)>" \ + --name $(NAME) \ + --output-type deb \ + --package build/deb/$(NAME)_$(VERSION)_arm64.deb \ + --url "https://github.com/$(MAINTAINER)/$(REPOSITORY)" \ + --vendor "" \ + --version $(VERSION) \ + --verbose \ + build/linux/$(NAME)-arm64=/usr/bin/$(BINARY_NAME) \ + LICENSE=/usr/share/doc/$(NAME)/copyright + build/deb/$(NAME)_$(VERSION)_armhf.deb: build/linux/$(NAME)-armhf export SOURCE_DATE_EPOCH=$(shell git log -1 --format=%ct) \ && mkdir -p build/deb \ @@ -165,9 +192,11 @@ bin/gh-release: release: build bin/gh-release rm -rf release && mkdir release tar -zcf release/$(NAME)_$(VERSION)_linux_amd64.tgz -C build/linux $(NAME)-amd64 + tar -zcf release/$(NAME)_$(VERSION)_linux_arm64.tgz -C build/linux $(NAME)-arm64 tar -zcf release/$(NAME)_$(VERSION)_linux_armhf.tgz -C build/linux $(NAME)-armhf tar -zcf release/$(NAME)_$(VERSION)_darwin_$(HARDWARE).tgz -C build/darwin $(NAME) cp build/deb/$(NAME)_$(VERSION)_amd64.deb release/$(NAME)_$(VERSION)_amd64.deb + cp build/deb/$(NAME)_$(VERSION)_arm64.deb release/$(NAME)_$(VERSION)_arm64.deb cp build/deb/$(NAME)_$(VERSION)_armhf.deb release/$(NAME)_$(VERSION)_armhf.deb cp build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm release/$(NAME)-$(VERSION)-1.x86_64.rpm bin/gh-release create $(MAINTAINER)/$(REPOSITORY) $(VERSION) $(shell git rev-parse --abbrev-ref HEAD) @@ -176,13 +205,14 @@ release-packagecloud: @$(MAKE) release-packagecloud-deb @$(MAKE) release-packagecloud-rpm -release-packagecloud-deb: build/deb/$(NAME)_$(VERSION)_amd64.deb build/deb/$(NAME)_$(VERSION)_armhf.deb +release-packagecloud-deb: build/deb/$(NAME)_$(VERSION)_amd64.deb build/deb/$(NAME)_$(VERSION)_arm64.deb build/deb/$(NAME)_$(VERSION)_armhf.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/bionic build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/focal build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/stretch build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/buster build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/bullseye build/deb/$(NAME)_$(VERSION)_amd64.deb - package_cloud push $(PACKAGECLOUD_REPOSITORY)/raspbian/buster build/deb/$(NAME)_$(VERSION)_armhf.deb + package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/focal build/deb/$(NAME)_$(VERSION)_arm64.deb + package_cloud push $(PACKAGECLOUD_REPOSITORY)/raspbian/buster build/deb/$(NAME)_$(VERSION)_armhf.deb release-packagecloud-rpm: build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm package_cloud push $(PACKAGECLOUD_REPOSITORY)/el/7 build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm @@ -190,16 +220,21 @@ release-packagecloud-rpm: build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm validate: mkdir -p validation lintian build/deb/$(NAME)_$(VERSION)_amd64.deb || true + lintian build/deb/$(NAME)_$(VERSION)_arm64.deb || true lintian build/deb/$(NAME)_$(VERSION)_armhf.deb || true dpkg-deb --info build/deb/$(NAME)_$(VERSION)_amd64.deb + dpkg-deb --info build/deb/$(NAME)_$(VERSION)_arm64.deb dpkg-deb --info build/deb/$(NAME)_$(VERSION)_armhf.deb dpkg -c build/deb/$(NAME)_$(VERSION)_amd64.deb + dpkg -c build/deb/$(NAME)_$(VERSION)_arm64.deb dpkg -c build/deb/$(NAME)_$(VERSION)_armhf.deb cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_amd64.deb + cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_arm64.deb cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_armhf.deb cd validation && rpm2cpio ../build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm > $(NAME)-$(VERSION)-1.x86_64.cpio ls -lah build/deb build/rpm validation sha1sum build/deb/$(NAME)_$(VERSION)_amd64.deb + sha1sum build/deb/$(NAME)_$(VERSION)_arm64.deb sha1sum build/deb/$(NAME)_$(VERSION)_armhf.deb sha1sum build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm go get -u github.com/progrium/basht/...