Skip to content
zoryn/ maintainer-assistant

Using zoryn without maintainer status

Yes — you can build ALT Linux packages with zoryn without a maintainer account. zoryn has no login of its own: every privileged operation is plain SSH to the gitery/gyle hosts, and the access gate lives entirely on the ALT side (your SSH key must be registered there and you must hold the package ACL). Nothing in zoryn checks maintainer status locally, so a large, useful part of the tool works with zero ALT credentials.

This page is for three kinds of user:

  • Building for yourself or a private repo — you produce ALT RPMs for a personal or corporate repository and never intend to publish to Sisyphus.
  • Aspiring maintainer / contributor — you prepare an update or a new package to hand off to a maintainer, or to learn the workflow before joining.
  • Pre-publication testing — you locally reproduce a Sisyphus build to validate a patch or an update without girar access.

What works without maintainer status

Everything below runs on your own machine (or your own build hosts) and needs no ALT account:

TaskCommandWhy it needs no account
Update a package to a new upstream versionzoryn upLocal pipeline: fetch → merge → spec → changelog → build
Build a package in a local hasherzoryn buildRuns hsh on a local tarball, no network
Build on your own remote hostzoryn build -b <name>SSH to a machine you control — not girar/gyle
Package a new programzoryn gen pypi2spec / gen opam2specGenerates spec + .gear locally
Generate an upstream watch filezoryn gen watchQueries Repology (Debian/Gentoo/Arch), public data
Commit changes with the spec changelogzoryn commitPlain local git commit
Clone a package from Sisyphuszoryn clone <pkg>Public HTTPS read from git.altlinux.org
Check for a newer upstream versionzoryn check versionPublic upstream data
Locate / validate a speczoryn spec, zoryn check specLocal files

So the whole per-package edit → build → verify loop is available offline.

What requires maintainer status

These operations go through ALT's official build server and are gated by an SSH key registered on gitery/gyle plus the package ACL:

TaskCommandWhat it does
Push branch and tag to giteryzoryn submitgit push over SSH to gitery.altlinux.org
Create / run a build taskzoryn task new / task runssh gyle task … on the build server
Publish to Sisyphus / a branchzoryn task run --commitAtomically commits built packages into the repo

Without a registered key and the ACL, these commands fail — that is the only line a non-maintainer cannot cross.

What is an ALT Linux build task?

A build task (сборочное задание) is a unit of work on ALT's girar/gyle build server — not a local build. You create it with task new, attach subtasks with task add (one gear repo at a tag = one package), and the server builds every subtask together, in dependency order, across all architectures. task run builds; task run --commitatomically publishes the results into the target repository (Sisyphus or a branch). Tasks can depend on other tasks and be approved, aborted, copied or rebuilt. You can browse, search and track build tasks and their status online at packages.altlinux.org/tasks.

A local zoryn build runs the same hasher build on your own machine, but it is not a build task: no server, no publication, no ACL required. That is exactly the boundary a non-maintainer sits on — you can build everything locally; only creating a task and committing it into the repo needs an account.

Local workflows

Three common jobs, each ending in a local hasher build (never submit).

Update an existing ALT package

The maintainer's upsubmit cycle, minus the submit:

# Clone the current package sources from Sisyphus (public, no account)
zoryn clone libfoo
cd libfoo

# Update to the new upstream version: fetch → merge → spec → changelog → build
zoryn up

# Build in a local hasher
zoryn build

# Record the change with the spec changelog
zoryn commit

Where a maintainer would run zoryn submit, you stop after a local build. The resulting RPMs and the updated .gear are yours to install, ship to a private repo, or hand to a maintainer.

Package a new program for ALT

Generate a spec from an upstream source, then build it:

# From a PyPI project — clones the upstream repo and writes .gear/<name>.spec
zoryn gen pypi2spec requests
cd requests

# (or from an opam package: `zoryn gen opam2spec dune --clone` to clone too,
#  or run `zoryn gen opam2spec dune` inside an existing gear repo)

zoryn spec find          # locate the generated spec, then edit it
zoryn build              # build in a local hasher
zoryn commit

For a language zoryn has no generator for, write the spec by hand and jump straight to zoryn build. Add a zoryn gen watch file if you want to track future upstream releases.

Build an existing gear package

If you already have a gear repository, you only need one command:

cd mypackage
zoryn build              # local hasher build

A local build leaves the packages in the hasher's repo ({hasher_dir}/repo/{arch}/RPMS.hasher); a build on a remote builder downloads them into {git_root}/hasher_out/. Use zoryn build -B p11 to build against a stable branch, or -b <builder> to pick a specific hasher.

Building on your own machines

A remote builder in zoryn is just a host you SSH into to run hsh — it has nothing to do with girar/gyle and needs no ALT account, only SSH access to that machine. This lets a non-maintainer build for architectures your workstation does not have (ARM64, i586, RISC-V, e2k) and run several builds in parallel.

Adding builders, parallel local hashers and multi-architecture farms are covered in full in the Build farm guide — none of it requires maintainer status.

What this buys you

  • Reproduce Sisyphus builds locally — the same hsh chroot the official server uses, so a package that builds for you builds there too.
  • Multi-architecture on your own hardware — validate ARM64 / i586 / RISC-V builds without any ALT infrastructure.
  • The full up pipeline with no privileges — automated merge, spec bump and changelog editing, not just a raw build.
  • CI and private repositories — script zoryn build in a pipeline to feed a personal or corporate ALT repository.
  • Learn before you join — practise the exact maintainer workflow so that, once you have an account, submit and task are the only new pieces.

Prerequisites and caveats

Build machines — local and remote — must run ALT Linux: builds happen through hasher, an ALT tool that builds each package in its own chroot. See the hasher quick guide for setup.

A local hasher build needs hasher-priv set up on your machine (this needs root on that machine):

apt-get install hasher bubblewrap
sudo hasher-useradd            # satellite users for the local hasher

Your user must be in the hashman group, and /etc/hasher-priv/user.d/<user> must allow the mountpoints your build command uses. zoryn checks this before every build and tells you exactly what to add. Full prerequisites (including remote hosts) are in the Build farm guide.

Getting your result into ALT Linux

Once your local work is ready, there are three ways forward:

  • Hand it to a maintainer. Give the package's current maintainer your gear repository (or a patch and the built RPMs) — they can review and submit it. No maintainer, or a brand-new package? File a request in ALT Bugzilla.
  • Join ALT Linux Team. To publish yourself, become an ALT Linux Team member and get the package ACL. Start at the Join guide.
  • Then submit opens up. With an SSH key on gitery/gyle and the ACL, the maintainer-only commands — zoryn submit and zoryn task — work exactly as documented, on top of the same local workflow you already know.