Skip to main content

SBo tool for creating SlackBuilds.

Project description

pipeline coverage PyPI Python License

About

sbo-create is a command-line tool for creating and maintaining SlackBuilds.org packages.

It covers the entire package lifecycle: generating files from official SBo templates, downloading and verifying sources, validating against SBo submission guidelines, bumping versions, and packaging for submission — all from a single tool.

Homepage

Visit the project website here.

Source

Features

  • File-based SlackBuild templates auto-updated from slackbuilds.org.
  • Creates all package files inside a <prgnam>/ subdirectory, matching the SBo layout. Supports interactive mode, sbc create myapp (positional), and full flag-based non-interactive mode.
  • Create submission tarball (<prgnam>.tar.gz) with automatic validation.
  • Validation of .info fields and md5sums against SBo submission guidelines.
  • Automatic verification of dependencies in REQUIRES against SBo repository.
  • Local caching of SBo package list for instantaneous and offline validation.
  • Checks whether a package already exists in the SBo repository.
  • Fetches and extracts a SlackBuild package from the SBo repository, or copies it directly from a local clone when SBO_REPO_PATH is configured. Supports browsing package files and reading individual files without a full download.
  • Shows a unified diff between local package files and the SBo repository.
  • Resolves recursive dependencies (deps) and reverse dependencies (rdeps) using the local package index or a local SBo clone.
  • Searches for packages by partial name match.
  • Downloads source files listed in the .info file, with optional URL accessibility check via HTTP HEAD requests.
  • Bumps version in .info and .SlackBuild, with optional automatic update of DOWNLOAD URLs, source download, and MD5SUM recomputation.
  • Preview files that would be created without writing anything to disk.
  • Auto-correction of quotation marks in .info file fields.
  • Auto-imports text from slack-desc into the README file.
  • Interactive CLI prompt to create or update maintainer configuration, with current values shown as defaults. Type ! to clear a field.
  • Auto-imports maintainer data into the .SlackBuild script.
  • Auto-imports and verifies MD5 checksums in the .info file.
  • ARM64 architecture support.
  • Opens all package files in the configured editor with a single command.
  • Renames package files and updates all PRGNAM references and slack-desc content in one step, with word-boundary matching.
  • Interactive create mode with arrow-key template selection when no flags given.
  • Strip comment lines and inline comments from .SlackBuild.
  • Strict pre-submission checks: HTTPS URLs, HOMEPAGE accessibility, executable bit, exact slack-desc line count, and MAINTAINER/EMAIL match.
  • Syncs the local SBo git repository after a weekly public update: pulls the main branch, deletes the old working branch, and creates a fresh one.
  • Submits a package update via git (commit and push) or opens the SBo web submission page if no git repository is configured. Warns if the working branch is behind the main branch and auto-detects first-push upstream setup.
  • Queries repology.org for package version status by maintainer e-mail. Filters by --newest, --outdated, --problematic, or shows all statuses when no filter is given.
  • ANSI-coloured CLI output and colored help (suppressed when output is piped).

Usage

usage: sbo-create COMMAND [OPTIONS]
       sbc COMMAND [OPTIONS]

Note: sbc is available as a shorter alias for sbo-create. Available commands: create, download, check, search, clean, info, list, validate, bump, package, edit, rename, fetch, deps, rdeps, diff, sync, submit, update, maintainer, repology.

Create all SlackBuild files interactively (arrow-key template selection):

sbo-create create

Create all SlackBuild files non-interactively for a Python package:

sbo-create create -n prgnam -r 1.0.0 -t python

Open package files in the configured editor:

sbo-create edit

Rename package files (updates PRGNAM, SlackBuild header, and slack-desc):

sbo-create rename newname

Create submission tarball (prompts for strict validation before packaging):

sbo-create package

Update templates from slackbuilds.org:

sbo-create update

Search for packages by partial name:

sbo-create search python3-b

Remove downloaded source tarballs:

sbo-create clean

Check if a package exists in the SBo repository:

sbo-create check python3-build

Check multiple packages at once:

sbo-create check vim slpkg colored

Check URL accessibility without downloading:

sbo-create download --check-urls

Validate the .info file:

sbo-create validate

Show detailed warnings for missing or untracked source tarballs during validation:

sbo-create validate --md5

Auto-fix common issues across all package files (trailing whitespace, quotes, PRGNAM, VERSION sync, copyright year, final newline, and MD5SUM recomputation from local sources when a mismatch is detected):

sbo-create validate --fix

Auto-fix all issues including strict ones (HOMEPAGE http→https, executable bit, source tarballs, MAINTAINER/EMAIL):

sbo-create validate --strict --fix

Bump version and recompute checksums:

sbo-create bump 2.0.0 --with-sources

Run strict pre-submission validation:

sbo-create validate --strict

List available templates:

sbo-create list

Show dependency tree for a package:

sbo-create deps neovim-qt
sbo-create deps neovim-qt --tree

Show which packages depend on a given package:

sbo-create rdeps python3-tomlkit

Sync the SBo repository after a weekly public update:

sbo-create sync

Fetch and extract a SlackBuild package from SBo (or local clone):

sbo-create fetch slpkg

Submit a package update via git (commit and push):

sbo-create submit

Check package versions via repology.org (all statuses):

sbo-create repology

Show only outdated packages for a specific maintainer e-mail:

sbo-create repology --outdated -m user@example.com

Documentation

Full documentation is available at dslackw.gitlab.io/sbo-create.

License

GNU General Public License v3 (GPLv3)

Donate

Did you know that developers love coffee?

paypal

Contributing

Contributions are welcome! Please open an issue or merge request on GitLab.

Copyrights

Slackware® is a Registered Trademark of Patrick Volkerding. Linux is a Registered Trademark of Linus Torvalds.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sbo_create-2.1.0.tar.gz (67.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sbo_create-2.1.0-py3-none-any.whl (76.0 kB view details)

Uploaded Python 3

File details

Details for the file sbo_create-2.1.0.tar.gz.

File metadata

  • Download URL: sbo_create-2.1.0.tar.gz
  • Upload date:
  • Size: 67.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.33.1

File hashes

Hashes for sbo_create-2.1.0.tar.gz
Algorithm Hash digest
SHA256 bc0cfa35ce08cb7da78445c148254b986318e4f9675526aa550cf14c47a7c807
MD5 6490c45e9cece89d524bf05b4b023b34
BLAKE2b-256 eb497beee8feb25fa4af7ec4bcb5332388245dc53202e543e3e27f5f192ff40f

See more details on using hashes here.

File details

Details for the file sbo_create-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: sbo_create-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.33.1

File hashes

Hashes for sbo_create-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 008307ad6e83034e906e8a64a641e041510d8fe8cf744f7905848112823b219e
MD5 53c7d550958fdd1a9d124db90f536e99
BLAKE2b-256 1cc8898a8f3ff5119d23cd333c2aa86fbd58582aaa45eca84101f524a7d0285e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page