update build system

This commit is contained in:
2025-04-29 16:49:48 -05:00
parent 6d8c55b4a6
commit 1611ccd07a
3 changed files with 38 additions and 28 deletions

33
Makefile Normal file
View File

@ -0,0 +1,33 @@
BUILDDIR := ./void-packages
TEMPLATES := $(shell find srcpkgs/* -maxdepth 0 -type d)
PACKAGES := $(addprefix $(BUILDDIR)/,$(notdir $(TEMPLATES)))
all: sync $(PACKAGES)
$(info TEMPLATES: $(TEMPLATES))
$(info PACKAGES: $(PACKAGES))
$(BUILDDIR)/%: srcpkgs/%
@echo "Building package: $<"
@rm -rf $(BUILDDIR)/srcpkgs/$<
@cp -ru $< $(BUILDDIR)/srcpkgs/
@-cd $(BUILDDIR) && ./xbps-src clean $<
@-cd $(BUILDDIR) && ./xbps-src pkg $< || echo "Warning: Failed to build $<"
@mkdir -p ./dest
@-cp -u $(BUILDDIR)/hostdir/binpkgs/*.xbps ./dest/
@-cp $(BUILDDIR)/hostdir/binpkgs/x86_64-repodata ./dest/
sync: sync-build
sync-fetch:
test -d $(BUILDDIR) || git clone --depth=1 https://github.com/void-linux/void-packages.git $^
sync-update: sync-fetch
@cd $(BUILDDIR) && git pull
sync-build: sync-update
@cd $(BUILDDIR) && ./xbps-src binary-bootstrap
sync-clean:
rm -rf $(BUILDDIR)
build-clean:
rm -rf ./dest
clean: sync-clean build-clean

View File

@ -6,3 +6,8 @@ To install the packages in this repo make a file called:
```conf
repository=https://voidpkgs.squi.bid
```
## Building
To add a template to the repository make a template in the srcpkgs directory.
To build all packages run `make` to choose a specific one run
`make TEMPLATES=srcpkgs/your_package_name`.

View File

@ -1,28 +0,0 @@
#!/bin/sh
# a small script to help me compile all packages and push them to my server
set -e # exit asap
# cleanup previous build
if [ "$1" = "clean" ]; then
rm -rf ./dest ./void-packages
exit 0
fi
mkdir -p ./dest
[ ! -d void-packages ] && git clone --depth 1 https://github.com/void-linux/void-packages.git
./void-packages/xbps-src binary-bootstrap
for f in srcpkgs/*; do
cp ./"$f" ./void-packages/"$f" -ruf
./void-packages/xbps-src pkg "$f"
cp ./void-packages/hostdir/binpkgs/*.xbps ./dest/ -u
done
# copy repodata after building all packages
cp ./void-packages/hostdir/binpkgs/x86_64-repodata ./dest/
# tell the builder to sign their packages
printf "\n\n\033[1;31mRun the following commands:\033[m\n"
printf 'xbps-rindex -s ./dest --privkey \033[31m/path/to/key\033[m --signedby \033[31m"Name <Email>"\033[m\n'
printf 'xbps-rindex -S ./dest/* --privkey \033[31m/path/to/key\033[m\n'