Current section
Files
Jump to
Current section
Files
priv/pkg.mk
TARGET_DIR ?=/opt/local
FILE ?=$(COMPONENT)-$(VERSION)$(SUFFIX)
BLOCK_SIZE ?=65536
STAGE_DIR ?=deploy
TMP_DIR ?=tmp
PKG_CATEGORY ?=fifo
PKG_HOMEPAGE ?=https://project-fifo.net
.PHONY: package_list build_info clean-pkg
package_list:
-rm packlist || true
for dep in $(DEPS); do echo "@pkgdep $$dep" >> packlist; done
(cd $(STAGE_DIR); find * -type f | sort) >> packlist
build_info:
pkg_info -X pkg_install | egrep '^(MACHINE_ARCH|OPSYS|OS_VERSION|PKGTOOLS_VERSION)' >build-info
echo "CATEGORIES=$(PKG_CATEGORY)" >>build-info
echo "HOMEPAGE=$(PKG_HOMEPAGE)" >>build-info
clean-pkg:
-rm -r tmp build-info packlist
tmp/$(FILE).tgz: package_list build_info
-rm -r tmp
mkdir tmp
pkg_create -i install.sh -k deinstall.sh -D displayfile -B build-info -c comment -d description -f packlist -I $(TARGET_DIR) -p $(STAGE_DIR) -U tmp/$(FILE).tgz
ifdef GPG_KEY
$(FILE).tgz: tmp/$(FILE).tgz +PKG_HASH +PKG_GPG_SIGNATURE
-rm $(FILE).tgz
gar r $(FILE).tgz +PKG_HASH +PKG_GPG_SIGNATURE tmp/$(FILE).tgz
rm -r tmp
else
$(FILE).tgz: tmp/$(FILE).tgz
cp tmp/$(FILE).tgz $(FILE).tgz
rm -r tmp
endif
+PKG_HASH: tmp/$(FILE).tgz
split -b $(BLOCK_SIZE) tmp/$(FILE).tgz tmp/split
echo "pkgsrc signature\n\nversion: 1\npkgname: $(FILE)" > +PKG_HASH
echo "algorithm: SHA512\nblock size: $(BLOCK_SIZE)" >> +PKG_HASH
echo "file size: $(shell stat -c%s tmp/$(FILE).tgz)\n" >> +PKG_HASH
for file in tmp/split*; do digest -a sha512 $$file >> +PKG_HASH; done
echo "end pkgsrc signature" >> +PKG_HASH
+PKG_GPG_SIGNATURE: +PKG_HASH
-rm +PKG_GPG_SIGNATURE
gpg --default-key $(GPG_KEY) -o +PKG_GPG_SIGNATURE --detach-sign --armor +PKG_HASH