Archlinux repository server & package build system, written in V.
 
 
 
 
 
 
Go to file
Jef Roosens 8a0beffbe2
ci/woodpecker/push/lint unknown status Details
ci/woodpecker/push/release unknown status Details
ci/woodpecker/push/build Pipeline was successful Details
ci/woodpecker/push/image Pipeline was successful Details
ci/woodpecker/push/builder Pipeline was successful Details
ci/woodpecker/push/publish Pipeline was successful Details
Bumped v release; files are now served properly
2022-01-31 21:14:43 +01:00
.woodpecker Bumped v release; files are now served properly 2022-01-31 21:14:43 +01:00
patches Added builder patch for public sha256 functions 2022-01-31 14:19:37 +01:00
src Bumped v release; files are now served properly 2022-01-31 21:14:43 +01:00
.dockerignore Switched to patch-based builder, based on weekly 2022-01-27 19:18:11 +01:00
.editorconfig Added editorconfig file [CI SKIP] 2022-01-27 22:39:03 +01:00
.gitignore Switched to patch-based builder, based on weekly 2022-01-27 19:18:11 +01:00
CHANGELOG.md Started a changelog [CI SKIP] 2022-01-27 22:14:08 +01:00
Dockerfile Another typo 2022-01-15 11:18:05 +01:00
Dockerfile.builder Will it really be this? 2022-01-27 20:05:06 +01:00
Dockerfile.ci Added healthcheck route; upgraded Docker image 2022-01-31 11:11:45 +01:00
LICENSE Added AGPLv3 license [CI SKIP] 2022-01-27 22:34:12 +01:00
Makefile Bumped v release; files are now served properly 2022-01-31 21:14:43 +01:00
README.md Started a changelog [CI SKIP] 2022-01-27 22:14:08 +01:00
test.py Overcomplicated the test script because of course [CI SKIP] 2022-01-30 18:13:12 +01:00

README.md

Vieter

Vieter is a re-implementation of the Pieter project. The goal is to create a simple PKGBUILD-based build system, combined with a self-hosted Arch repository. This would allow me to periodically re-build AUR packages (or PKGBUILDs I created myself), & make sure I never have to compile anything on my own systems, making my updates a lot quicker.

Why V?

I chose V as I've been very intrigued by this language for a while now. I wanted a fast language that I could code while relaxing, without having to exert too much mental effort & V seemed like the right choice for that.

Custom Compiler

Currently, this program only works with a very slightly modified version of the V standard library, and therefore the compiler. The changes that are made to the standard V release can be found in the patches directory. You can obtain this modified version of the compiler by running make v, which will download, patch & build the compiler. Afterwards, all make commands that require the V compiler will use this new binary.

Features

The project will consist of a server-agent model, where one or more builder nodes can register with the server. These agents communicate with the Docker daemon to start builds, which are then uploaded to the server's repository. The server also allows for non-agents to upload packages, as long as they have the required secrets. This allows me to also develop non-git packages, such as my terminal, & upload them to the servers using CI.

Directory Structure

The data directory consists of three main directories:

  • downloads - This is where packages are initially downloaded. Because vieter moves files from this folder to the pkgs folder, these two folders should best be on the same drive
  • pkgs - This is where approved package files are stored.
  • repos - Each repository gets a subfolder here. The subfolder contains the uncompressed contents of the db file.
    • Each repo subdirectory contains the compressed db & files archive for the repository, alongside a directory called files which contains the uncompressed contents.