chore: added initial vlang stuff
ci/woodpecker/push/vlang Pipeline failed Details

main
Jef Roosens 2023-02-13 12:20:09 +01:00
commit 9dc77c6b86
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
4 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,34 @@
matrix:
PLATFORM:
- linux/amd64
- linux/arm64
platform: ${PLATFORM}
when:
path: 'vlang/PKGBUILD.vlang'
pipeline:
build:
image: 'git.rustybever.be/vieter-v/vieter-builder'
commands:
# Add the vieter repository so we can use the compiler
- echo -e '[vieter]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' >> /etc/pacman.conf
# Update packages
- pacman -Syu --noconfirm
# Create non-root user to perform build & switch to their home
- groupadd -g 1000 builder
- useradd -mg builder builder
- chown -R builder:builder "$PWD"
- "echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"
- su builder
- cd vlang
- makepkg -s --noconfirm --needed
publish:
image: 'curlimages/curl'
commands:
# Publish the package
- 'for pkg in $(ls -1 *.pkg*); do curl -XPOST -T "$pkg" -H "X-API-KEY: $VIETER_API_KEY" https://arch.r8r.be/vieter/publish; done'
secrets:
- vieter_api_key

5
README.md 100644
View File

@ -0,0 +1,5 @@
# Build tools
Vieter requires several tools to be developed, one of which being a specific
version of Vlang. This repository manages Dockerfiles & other packages for
these various tools.

View File

@ -0,0 +1,65 @@
# Maintainer: Jef Roosens
# Contributor: Logan Magee <mageelog@gmail.com>
_v_commit_sha=d1f57ead713c8e5254d8cef22991e6409dc1f06b
_vc_commit_sha=1f7f0244f352d41122bb306446d98ae3de4e6b02
pkgname=vieter-vlang
pkgver="$(echo "${_v_commit_sha}" | cut -c -8)"
pkgrel=1
epoch=1
pkgdesc='Locked Vlang version used to develop Vieter'
arch=('x86_64' 'aarch64')
url='https://vlang.io'
license=('MIT')
depends=('glibc')
optdepends=('glfw: Needed for graphics support'
'freetype2: Needed for graphics support'
'openssl: Needed for http support')
makedepends=('git')
conflicts=('v' 'vlang')
source=("${pkgname}.zip::https://github.com/vlang/v/archive/${_v_commit_sha}.zip"
"${pkgname}-vc.zip::https://github.com/vlang/vc/archive/${_vc_commit_sha}.zip")
sha256sums=('6886469efe21463276d682e658f415ea1167a9efb41bf2a8fd6577abb753f2e4'
'91b6b4b576659f222e8aa3569124e95e17feb5c0b436ecc0f30db04ff24f6e39')
sha512sums=('81481854928f31c2cfc3c49acaa9b579712bbfa66cf2a31c5a2df2af47511b9fb62576844cdf1bcf1512b8cea58d4d637ad44110d2a73a0b55b6f41efa984b25'
'8eab18f5d01a417c0cdbfd995fdd570ca92fd2ce245eda08762de0021487fff1c6084c91fcc7fcdfd37aa618d2f71c0222df6f434b014fe3b71d284795762b0b')
prepare() {
# In case the previous directory still exists
rm -rf "v-${_v_commit_sha}/vc"
mv "vc-${_vc_commit_sha}" "v-${_v_commit_sha}/vc"
# We have to set local=1 because we manually download a specific vc
# version. This flag also disables downloading tcc, so we do that
# beforehand.
make -C "v-${_v_commit_sha}" fresh_tcc
}
build() {
cd "v-${_v_commit_sha}"
CFLAGS="" LDFLAGS="" make prod=1 local=1
# Compile all tools
LDFLAGS='' ./v build-tools
}
package() {
cd "v-${_v_commit_sha}"
install -d "${pkgdir}/usr/lib/vlang" "${pkgdir}/usr/share/vlang" "${pkgdir}/usr/bin"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm755 v "${pkgdir}/usr/lib/vlang"
cp -a cmd "${pkgdir}/usr/lib/vlang/"
cp -a examples "${pkgdir}/usr/share/vlang/"
cp -a thirdparty "${pkgdir}/usr/lib/vlang/"
cp -a vlib "${pkgdir}/usr/lib/vlang/"
cp v.mod "${pkgdir}/usr/lib/vlang/"
ln -s /usr/lib/vlang/v "${pkgdir}/usr/bin/v"
touch "${pkgdir}/usr/lib/vlang/cmd/tools/.disable_autorecompilation"
}
# vim: ft=bash

50
vlang/PKGBUILD.vls 100644
View File

@ -0,0 +1,50 @@
# Maintainer: Jef Roosens
pkgname=vieter-vls
pkgver=r678.607138c
pkgrel=1
pkgdesc='Locked version used with for Vieter development.'
arch=('x86_64' 'aarch64')
url='https://github.com/vlang/vls'
license=('MIT')
depends=('glibc' 'vieter-vlang')
makedepends=('git')
source=("${pkgname}::git+https://github.com/vlang/vls")
md5sums=('SKIP')
pkgver() {
cd "${pkgname}"
echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}
build() {
cd "${pkgname}"
v run build.vsh gcc
msg "Building treesitter grammar..."
# Building with -prod is required because otherwise, the binary contains
# tcc symbols which isn't usually installed on the user's system.
v -cc gcc -shared -prod tree_sitter_v
}
package() {
# Install vls
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}/bin/vls" "${pkgdir}/usr/bin/vls"
install -Dm644 "${pkgname}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
# Install treesitter grammar
# This package installs the parser & queries for Neovim in its runtimepath
install -dm755 "${pkgdir}/usr/share/nvim/runtime/parser"
install -dm755 "${pkgdir}/usr/share/nvim/runtime/queries/v"
install -Dm755 "${pkgname}/tree_sitter_v/tree_sitter_v.so" "${pkgdir}/usr/share/nvim/runtime/parser/v.so"
install -m644 "${pkgname}/tree_sitter_v/queries"/* "${pkgdir}/usr/share/nvim/runtime/queries/v"
}
# vim: ft=bash