MCPcopy Index your code
hub / github.com/eagletmt/guzuta

github.com/eagletmt/guzuta @v0.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.0 ↗ · + Follow
95 symbols 190 edges 7 files 0 documented · 0% updated 20mo ago★ 323 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

guzuta

Custom repository manager for ArchLinux pacman

Usage

Build a package and store it to a repository

Basic usage: build foo x86_64 package for bar repository.

% ls foo
PKGBUILD
% mkarchroot chroot/root base-devel
% mkdir -p repo/x86_64
% guzuta build foo --repo-dir repo/x86_64 --repo-name bar --arch x86_64 --chroot-dir chroot
(snip)
% ls repo/x86_64
bar.db  bar.files  foo-1.0.0-1-x86_64.pkg.tar.zst

With full options:

% guzuta build --chroot-dir /var/cache/guzuta/chroot-x86_64 --repo-dir repo/x86_64 --repo-name bar --arch x86_64 --package-key $GPGKEY --repo-key $GPGKEY --srcdest sources --logdest logs foo
(snip)
% ls repo/x86_64
bar.db  bar.db.sig  bar.files  bar.files.sig  foo-1.0.0-1-x86_64.pkg.tar.zst  foo-1.0.0-1-x86_64.pkg.tar.zst.sig
% ls sources
foo-1.0.0.tar.gz
% ls logs
foo-1.0.0-1-x86_64-build.log  foo-1.0.0-1-x86_64-package.log

Omakase mode

Omakase mode supports a typical situation managing the custom repository.

Initialize a repository

See also https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot#Classic_Way

% sudo mkarchroot -C /path/to/pacman.conf -M /path/to/makepkg.conf /path/to/chroot-x86_64/root base base-devel
% cat > .guzuta.yml
name: foo
package_key: C48DBD97
repo_key: C48DBD97
srcdest: sources
logdest: logs
pkgbuild: PKGBUILDs
builds:
  x86_64:
    chroot: /path/to/chroot-x86_64
% mkdir foo sources logs PKGBUILDs

Build a package

Write a PKGBUILD in PKGBUILDs/#{pkgname} directory.

% mkdir PKGBUILDs/bar
% vim PKGBUILDs/bar/PKGBUILD

Then build the package.

% guzuta omakase build bar
(snip)
% tree foo
foo
`-- os
    `-- x86_64
        |-- bar-1.0.0-1-x86_64.pkg.tar.zst
        |-- bar-1.0.0-1-x86_64.pkg.tar.zst.sig
        |-- foo.db
        |-- foo.db.sig
        `-- foo.files

Publish the repository

For the server, serve files under the foo directory by HTTP server like nginx or Apache.

For clients, add the server's repository configuration to /etc/pacman.conf like below.

[foo]
SigLevel = Required
Server = http://example.com/$repo/os/$arch

Publish the repository (Amazon S3)

Configure .guzuta.yml for S3.

s3:
  bucket: foo-packages
  region: ap-northeast-1

Each time you execute guzuta omakase build:

  1. Download repository databases (not including packages)
  2. Build a package
  3. Upload the built package and repository databases.

Core symbols most depended-on inside this repo

save
called by 10
src/repository.rs
next
called by 10
src/repository.rs
desc_write_string
called by 10
src/repository.rs
load
called by 10
src/package.rs
desc_write_array
called by 9
src/repository.rs
add
called by 6
src/repository.rs
remove
called by 5
src/repository.rs
put
called by 5
src/omakase.rs

Shape

Method 51
Class 22
Function 19
Enum 3

Languages

Rust100%

Modules by API surface

src/package.rs29 symbols
src/repository.rs21 symbols
src/main.rs20 symbols
src/omakase.rs14 symbols
src/builder.rs8 symbols
src/signer.rs3 symbols

For agents

$ claude mcp add guzuta \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page