ZSVO - ZOVOS Software Versioning Operator, пакетный менеджер для дистрибутива ZOV OS
Find a file
itexpert228 fbe74e8a87
Improve dependency resolver and fix critical bugs
- Add comprehensive Debian dependency resolver (400+ package mappings)

- Implement automatic recursive dependency resolution for build dependencies

- Fix logic errors in install.go: allowFailure handling, ensureBuildDependency

- Fix install-script.sh PKGDIR environment variable handling

- Fix hardcoded /tmp/install-script.sh path in autoRecipeFromDebian

- Fix wrong yyjson URL

- Increase build timeout from 30min to 2 hours

- Improve command validation security

- Fix temporary directory leaks in installer

- Update .gitignore to include zsvo-test binary
2026-03-14 19:54:49 +03:00
cmd Improve dependency resolver and fix critical bugs 2026-03-14 19:54:49 +03:00
pkg Improve dependency resolver and fix critical bugs 2026-03-14 19:54:49 +03:00
recipes parasha 2026-03-14 12:23:04 +03:00
scripts Fix LFS dependency handling - skip Debian-specific packages 2026-03-14 19:32:54 +03:00
.gitignore Improve dependency resolver and fix critical bugs 2026-03-14 19:54:49 +03:00
DEPENDENCY_RESOLUTION.md рагшцр 2026-03-13 15:18:31 +03:00
DEPENDENCY_RESOLVER.md parasha 2026-03-14 12:23:04 +03:00
go.mod кал много кала......просто огромное количество кала.... 2026-03-13 00:37:11 +03:00
go.sum кал много кала......просто огромное количество кала.... 2026-03-13 00:37:11 +03:00
install-script.sh Improve dependency resolver and fix critical bugs 2026-03-14 19:54:49 +03:00
LICENSE Initial commit 2026-03-09 16:25:30 +00:00
main.go ебать красиво сделайте, блядей корежит 2026-03-13 12:47:45 +03:00
PREBUILT.md Fix install-script.sh tracking and add prebuilt packages documentation 2026-03-14 17:36:46 +03:00
README.md пися попа говно член пенис параша залуууууууупа сиси говно 2026-03-13 11:58:33 +03:00
README_RELEASE.md рагшцр 2026-03-13 15:18:31 +03:00
test-linux.sh pisi 2026-03-14 17:31:31 +03:00

ZSVO Package Manager

zsvo — source-based package manager.

Pipeline:

recipe -> download source -> extract -> build -> install into DESTDIR -> create package -> install package

Commands

# Build package from recipe
zsvo build recipes/zlib.yaml

# Install package built by zsvo
zsvo install /path/to/name-version.pkg.tar.zst

# Auto-build from Debian source and install
zsvo install neofetch

# Install to custom root
zsvo install --root /mnt/root /path/to/name-version.pkg.tar.zst

# Remove package(s)
zsvo remove bash
zsvo remove -c libfoo   # cascade
zsvo remove -n bash     # dry-run

# List installed / orphan packages
zsvo list
zsvo list --orphans

# Show package metadata
zsvo info bash

Recipe Format (YAML)

name: bash
version: "5.2"

description: GNU Bourne Again SHell

source:
  url: https://ftp.gnu.org/gnu/bash/bash-5.2.tar.gz
  sha256: examplehash

build:
  - ./configure --prefix=/usr
  - make -j$(nproc)

install:
  - make DESTDIR={{pkgdir}} install

deps:
  - glibc
  - readline
  - "zlib>=1.2.13"
  - "lua5.1 | luajit"

Debian upstream source mode:

name: bash
version: "5.2"

source:
  debian_dsc: https://deb.debian.org/debian/pool/main/b/bash/bash_5.2.37-2.dsc
  # optional: sha256 of the .dsc file itself
  # sha256: <dsc-sha256>

Notes:

  • deps support full constraints: name, name>=1.2, name (<= 2.0), and alternatives via |.
  • Installer resolves dependencies with version checks and transaction ordering (topological sort), including mixed installed + transaction packages.
  • {{pkgdir}} (and ${pkgdir}) points to staging DESTDIR.
  • If source.debian_dsc (or .dsc URL) is used, zsvo downloads only *.orig*.tar.* archives from that source package and ignores Debian patch archives (debian.tar.* / diff.gz).
  • zsvo install <name> auto-resolves Debian source over HTTP from Debian Sources indexes, builds package in --work-dir and installs it.
  • Auto-build in install <name> is quiet by default and shows a colored live progress bar (spinner + percent + elapsed time) instead of raw compiler output; full command output tail is shown on failure.
  • If build fails due to missing tools (cmake, meson, pkg-config, lua etc.), zsvo install auto-detects them, builds missing dependencies from Debian source with zsvo itself, installs them into --work-dir/bootstrap-root, and retries the build (--auto-build-deps=false to disable).
  • Auto-build can be tuned with env flags: ZSVO_AUTOGEN_ARGS, ZSVO_CONFIGURE_FLAGS, ZSVO_CMAKE_FLAGS, ZSVO_CMAKE_BUILD_FLAGS, ZSVO_MESON_SETUP_ARGS, ZSVO_MESON_COMPILE_ARGS, ZSVO_MESON_INSTALL_ARGS, ZSVO_MAKE_FLAGS, ZSVO_MAKE_INSTALL_FLAGS.
  • Package metadata is stored in .zsvo.yml (not .PKGINFO).

Architecture

  • pkg/recipe — YAML recipe parser.
  • pkg/fetcher — download + checksum + extract + patch apply.
  • pkg/builder — build/install pipeline in isolated workdir.
  • pkg/packager — create/read name-version.pkg.tar.zst from staging.
  • pkg/installer — install/remove packages into --root with file safety checks and rollback.

короче бляяяя для тестов go build -o zsvo . ./zsvo install fastfetch --work-dir /tmp/zsvo-work --root /tmp/zsvo-root find /tmp/zsvo-work/packages -name '*.pkg.tar.zst' find /tmp/zsvo-root/var/lib/pkgdb -maxdepth 3 -type f