diff --git a/agent-deployment/dependencies.mk b/agent-deployment/dependencies.mk index 554eb7c..32d7733 100644 --- a/agent-deployment/dependencies.mk +++ b/agent-deployment/dependencies.mk @@ -53,7 +53,7 @@ VND_MONOCYPHER_CFLAGS=-I$(MONOCYPHER_DIR)/src VND_MONOCYPHER_LDFLAGS=-L$(MONOCYPHER_DIR)/lib -lmonocypher $(VND_MONOCYPHER): $(MONOCYPHER_DIR)/.extracted - cd $(MONOCYPHER_DIR) && $(MAKE) USE_ED22519=true static-library + cd $(MONOCYPHER_DIR) && $(MAKE) USE_ED22519=true library $(MONOCYPHER_DIR)/.extracted: $(MONOCYPHER_FILE) $(call extract-file,$(MONOCYPHER_DIR)) diff --git a/crossfire/server.rkt b/crossfire/server.rkt index 1f5870e..68b87d4 100644 --- a/crossfire/server.rkt +++ b/crossfire/server.rkt @@ -37,7 +37,7 @@ ;; XXX : platform-specific (define *config-root* (if *production?* "/etc/" "etc/")) (define *state-root* (if *production?* "/var/lib/crossfire/" "lib/")) -(define *lib-root* (if *production?* "/usr/lib/" "lib/")) +(define *lib-root* (if *production?* "/usr/lib/crossfire/" "lib/")) (define (get-binary-path-for-arch arch) (build-path *lib-root* (string-append "arch_" arch) "crossfire-agent")) diff --git a/dist/PKGBUILD b/dist/PKGBUILD new file mode 100644 index 0000000..012c2ec --- /dev/null +++ b/dist/PKGBUILD @@ -0,0 +1,69 @@ +# Maintainer: haskal + +pkgname=crossfire +# from crossfire/info.rkt +pkgver=0.1 +pkgrel=1 +# from crossfire/info.rkt +pkgdesc="distributed brute force infrastructure" +arch=('any') +url="https://git.lain.faith/haskal/crossfire" +license=('GPL3') +depends=('sqlite' 'glibc') +makedepends=('gcc' 'make' 'gsfonts') +# from agent-deployment makefiles +_pkgver_emb_monocypher=3.1.1 +_pkgver_emb_racket=7.9 +_source_emb_monocypher="https://monocypher.org/download/monocypher-$_pkgver_emb_monocypher.tar.gz" +_source_emb_racket="https://mirror.racket-lang.org/installers/$_pkgver_emb_racket/racket-minimal-$_pkgver_emb_racket-src.tgz" + +source=( + "git+https://git.lain.faith/haskal/crossfire.git" + "monocypher.tar.gz::$_source_emb_monocypher" + "racket.tar.gz::$_source_emb_racket" +) +noextract=("monocypher.tar.gz" "racket.tar.gz") +sha256sums=(SKIP SKIP SKIP) + +prepare() { + cd "$srcdir" + _cachedir=crossfire/agent-deployment/cache + [ ! -d $_cachedir ] && mkdir $_cachedir + ln -sf $(readlink -e monocypher.tar.gz) $_cachedir/monocypher.tar.gz + ln -sf $(readlink -e racket.tar.gz) $_cachedir/racket.tar.gz +} + +build() { + cd "$srcdir/crossfire/agent-deployment" + # make agent binary + make + + # install crossfire into local installation + _arch="$(gcc -dumpmachine)" + _raco="$srcdir/crossfire/agent-deployment/arch_$_arch/vendor/racket-$_pkgver_emb_racket/bin/raco" + "$_raco" pkg install --skip-installed --auto "$srcdir/crossfire/crossfire" + "$_raco" exe -o "$srcdir/crossfire/crossfire-server" "$srcdir/crossfire/crossfire/server.rkt" + "$_raco" exe -o "$srcdir/crossfire/crossfire-client" "$srcdir/crossfire/crossfire/client.rkt" +} + +package() { + # install crossfire core and dependencies + install -d "$pkgdir/usr/lib/crossfire" + install -d "$pkgdir/usr/bin" + _arch="$(gcc -dumpmachine)" + _raco="$srcdir/crossfire/agent-deployment/arch_$_arch/vendor/racket-$_pkgver_emb_racket/bin/raco" + "$_raco" dist "$pkgdir/usr/lib/crossfire/" "$srcdir/crossfire/crossfire-server" "$srcdir/crossfire/crossfire-client" + for binary in crossfire-server crossfire-client; do + ln -s /usr/lib/crossfire/bin/$binary "$pkgdir/usr/bin/$binary" + done + # install agent binaries + cd "$srcdir/crossfire/agent-deployment" && for agent in arch_*/crossfire-agent; do \ + install -Dm644 $agent "$pkgdir/usr/lib/crossfire/$agent" + done + # install configuration + install -Dm644 "$srcdir/crossfire/etc/crossfire.rktd" "$pkgdir/etc/crossfire.rktd" + # install tmpfiles and sysusers for systemd + # install server systemd service + echo todo + return -1 +}