vieter/src/repo
Jef Roosens 455f3b5f41 fix: compile with selected V version 2023-02-15 20:07:07 +01:00
..
README.md chore(repo): added readme 2022-11-19 17:01:40 +01:00
add.v chore: ran v fmt for v 0.3.3 changes 2023-02-08 11:00:17 +01:00
remove.v fix: compile with selected V version 2023-02-15 20:07:07 +01:00
sync.v refactor: compile without warnings 2022-11-01 21:59:18 +01:00

README.md

repo

This module manages the contents of the various repositories stored within a Vieter instance.

Terminology

  • Arch-repository (arch-repo): specific architecture of a given repository. This is what Pacman actually uses as a repository, and contains its own .db & .files files.
  • Repository (repo): a collection of arch-repositories. A single repository can contain packages of different architectures, with each package being stored in that specific architecture' arch-repository.
  • Repository group (repo-group): a collection of repositories. Each Vieter instance consists of a single repository group, which manages all underlying repositories & arch-repositories.

Arch-repository layout

An arch-repository (aka a regular Pacman repository) consists of a directory with the following files ({repo} should be replaced with the name of the repository):

  • One or more package directories. These directories follow the naming scheme ${pkgname}-${pkgver}-${pkgrel}. Each of these directories contains two files, desc & files. The desc file is a list of the package's metadata, while files contains a list of all files that the package contains. The latter is used when using pacman -F.
  • {repo}.db & {repo}.db.tar.gz: the database file of the repository. This is just a compressed tarball of all package directories, but only their desc files. Both these files should have the same content (repo-add creates a symlink, but Vieter just serves the same file for both routes)
  • {repo}.files & {repo}.files.tar.gz: the same as the .db file, but this also contains the files files, instead of just the desc files.

Filesystem layout

The repository part of Vieter consists of two directories. One is the repos directory inside the configured data_dir, while the other is the configured pkg_dir. repos contains only the repository group, while pkg_dir contains the actual package archives. pkg_dir is the directory that can take up a significant amount of memory, while repos solely consists of small text files.