add PKGBUILD, upd DEB builder
This commit is contained in:
parent
f091b34854
commit
10ff2ca297
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,6 +1,6 @@
|
||||
dist/
|
||||
docs/build/
|
||||
packaging/build/
|
||||
packaging/*/build/
|
||||
instance.yaml
|
||||
.ruff_cache/
|
||||
__pycache__/
|
||||
|
18
Makefile
18
Makefile
@ -5,7 +5,7 @@ DOCS_BUILDDIR = docs/build
|
||||
|
||||
.PHONY: docs
|
||||
|
||||
all: docs build-deb
|
||||
all: docs build debian archlinux
|
||||
|
||||
requirements.txt:
|
||||
poetry export -f requirements.txt -o requirements.txt
|
||||
@ -13,8 +13,11 @@ requirements.txt:
|
||||
build: version format lint
|
||||
poetry build
|
||||
|
||||
build-deb: build
|
||||
cd packaging && $(MAKE)
|
||||
debian:
|
||||
cd packaging/debian && $(MAKE)
|
||||
|
||||
archlinux:
|
||||
cd packaging/archlinux && $(MAKE)
|
||||
|
||||
version:
|
||||
VERSION=$$(awk '/^version/{print $$3}' pyproject.toml); \
|
||||
@ -42,11 +45,12 @@ clean:
|
||||
[ -d $(DISTDIR) ] && rm -rf $(DISTDIR) || true
|
||||
[ -d $(DOCS_BUILDDIR) ] && rm -rf $(DOCS_BUILDDIR) || true
|
||||
find . -type d -name __pycache__ -exec rm -rf {} \; > /dev/null 2>&1 || true
|
||||
cd packaging && $(MAKE) clean
|
||||
cd packaging/debian && $(MAKE) clean
|
||||
cd packaging/archlinux && $(MAKE) clean
|
||||
|
||||
test-build: build-deb
|
||||
scp packaging/build/compute*.deb vm:~
|
||||
test-build: build debian
|
||||
scp packaging/debian/build/compute*.deb vm:~
|
||||
|
||||
upload-docs: docs-versions
|
||||
upload-docs:
|
||||
ssh root@hitomi 'rm -rf /srv/http/nixhacks.net/hstack/compute/*'
|
||||
scp -r $(DOCS_BUILDDIR)/* root@hitomi:/srv/http/nixhacks.net/hstack/compute/
|
||||
|
@ -1,24 +0,0 @@
|
||||
DOCKER_CMD ?= docker
|
||||
DOCKER_IMG = pybuilder:bookworm
|
||||
DEBBUILDDIR = build
|
||||
|
||||
all: docker-build build
|
||||
|
||||
clean:
|
||||
test -d $(DEBBUILDDIR) && rm -rf $(DEBBUILDDIR) || true
|
||||
|
||||
docker-build:
|
||||
$(DOCKER_CMD) build -f Dockerfile -t $(DOCKER_IMG) .
|
||||
|
||||
build: clean
|
||||
mkdir -p $(DEBBUILDDIR)
|
||||
cp -v ../dist/compute-*[.tar.gz] $(DEBBUILDDIR)/
|
||||
cp -r ../docs $(DEBBUILDDIR)/
|
||||
if [ -f build.sh.bak ]; then mv build.sh{.bak,}; fi
|
||||
cp build.sh{,.bak}
|
||||
awk '/authors/{gsub(/[\[\]]/,"");print $$3" "$$4}' ../pyproject.toml \
|
||||
| sed "s/['<>]//g" \
|
||||
| tr ' ' '\n' \
|
||||
| xargs -I {} sed "0,/%placeholder%/s//{}/" -i build.sh
|
||||
$(DOCKER_CMD) run --rm -i -v $$PWD:/mnt $(DOCKER_IMG) bash < build.sh
|
||||
mv build.sh{.bak,}
|
10
packaging/archlinux/Dockerfile
Normal file
10
packaging/archlinux/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM archlinux:latest
|
||||
WORKDIR /mnt
|
||||
RUN chown 1000:1000 /mnt; \
|
||||
pacman -Sy --noconfirm \
|
||||
fakeroot \
|
||||
binutils \
|
||||
python \
|
||||
python-pip; \
|
||||
echo "alias ll='ls -alFh'" >> /etc/bash.bashrc
|
||||
USER 1000:1000
|
22
packaging/archlinux/Makefile
Normal file
22
packaging/archlinux/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
DOCKER_CMD ?= docker
|
||||
DOCKER_IMG = computebuilder:archlinux
|
||||
BUILDDIR = build
|
||||
|
||||
all: docker-build build
|
||||
|
||||
clean:
|
||||
test -d $(BUILDDIR) && rm -rf $(BUILDDIR) || true
|
||||
|
||||
docker-build:
|
||||
$(DOCKER_CMD) build -f Dockerfile -t $(DOCKER_IMG) .
|
||||
|
||||
build: clean
|
||||
mkdir -p $(BUILDDIR)
|
||||
VERSION=$$(awk '/^version/{print $$3}' ../../pyproject.toml | sed s'/-/\./'); \
|
||||
sed "s/pkgver=.*/pkgver=$$VERSION/" PKGBUILD > $(BUILDDIR)/PKGBUILD
|
||||
cp -v ../../dist/compute-*[.tar.gz] $(BUILDDIR)/
|
||||
cp ../../extra/completion.bash $(BUILDDIR)/
|
||||
$(DOCKER_CMD) run --rm -i -v $$PWD/$(BUILDDIR):/mnt --ulimit "nofile=1024:1048576" \
|
||||
$(DOCKER_IMG) makepkg --nodeps --clean
|
||||
# Remove unwanted files from build dir
|
||||
rm $(BUILDDIR)/compute*.tar.gz $(BUILDDIR)/PKGBUILD
|
16
packaging/archlinux/PKGBUILD
Normal file
16
packaging/archlinux/PKGBUILD
Normal file
@ -0,0 +1,16 @@
|
||||
pkgname=compute
|
||||
pkgver='0.1.0-dev4'
|
||||
pkgrel=1
|
||||
pkgdesc='Compute instances management library'
|
||||
arch=(any)
|
||||
url=https://get.lulzette.ru/hstack/compute
|
||||
license=('GPL-3-or-later')
|
||||
makedepends=(python python-pip)
|
||||
depends=(python libvirt libvirt-python qemu-base qemu-system-x86 qemu-img dnsmasq iptables-nft)
|
||||
provides=(compute)
|
||||
conflicts=()
|
||||
|
||||
package() {
|
||||
pip install --no-cache-dir --no-deps --root $pkgdir ../$pkgname-*.tar.gz
|
||||
install -Dm644 ../completion.bash $pkgdir/usr/share/bash-completion/completions/compute
|
||||
}
|
29
packaging/debian/Makefile
Normal file
29
packaging/debian/Makefile
Normal file
@ -0,0 +1,29 @@
|
||||
DOCKER_CMD ?= docker
|
||||
DOCKER_IMG = computebuilder:debian-bookworm
|
||||
BUILDDIR = build
|
||||
KEEP_BUILDFILES ?=
|
||||
|
||||
all: docker-build build
|
||||
|
||||
clean:
|
||||
test -d $(BUILDDIR) && rm -rf $(BUILDDIR) || true
|
||||
|
||||
docker-build:
|
||||
$(DOCKER_CMD) build -f Dockerfile -t $(DOCKER_IMG) .
|
||||
|
||||
build: clean
|
||||
mkdir -p $(BUILDDIR)
|
||||
cp -v ../../dist/compute-*[.tar.gz] $(BUILDDIR)/
|
||||
cp -r ../../docs $(BUILDDIR)/
|
||||
cp ../../extra/completion.bash $(BUILDDIR)/compute.bash-completion
|
||||
if [ -f build.sh.bak ]; then mv build.sh{.bak,}; fi
|
||||
cp build.sh{,.bak}
|
||||
awk '/authors/{gsub(/[\[\]]/,"");print $$3" "$$4}' ../pyproject.toml \
|
||||
| sed "s/['<>]//g" \
|
||||
| tr ' ' '\n' \
|
||||
| xargs -I {} sed "0,/%placeholder%/s//{}/" -i build.sh
|
||||
$(DOCKER_CMD) run --rm -i -v $$PWD:/mnt $(DOCKER_IMG) bash < build.sh
|
||||
mv build.sh{.bak,}
|
||||
# Remove unwanted files from build dir
|
||||
find $(BUILDDIR) -mindepth 1 -type d -exec rm -rf {} +
|
||||
[ -z $(KEEP_BUILDFILES) ] && find $(BUILDDIR) ! -name '*.deb' -type f -exec rm -f {} + || true
|
@ -11,5 +11,6 @@ sed -e "s%\.\./\.\.%$PWD%" -i ../docs/source/conf.py
|
||||
dh_make --copyright gpl3 --yes --python --file ../compute-*[.tar.gz]
|
||||
rm debian/*.ex debian/README.{Debian,source} debian/*.docs
|
||||
sed -e 's/\* Initial release.*/\* This is the development build, see commits in upstream repo for info./' -i debian/changelog
|
||||
cp -v ../../files/{control,rules,copyright,docs,compute.bash-completion,install} debian/
|
||||
cp -v ../../files/{control,rules,copyright,docs,install} debian/
|
||||
mv ../compute.bash-completion debian/
|
||||
dpkg-buildpackage -us -uc
|
Loading…
Reference in New Issue
Block a user