Skip to main content

Convert Go packages to RPM

Project description

go2rpm

go2rpm is a Python application designed to assist in the creation of RPM specfiles for Go (Golang) projects. It automates the process of fetching project details, determining dependencies, and generating a specfile.

Features

  • Automatic Specfile Generation: go2rpm automatically generates RPM specfiles based on the Go project's details and structure.
  • Support for Various Forges: go2rpm works with different code hosting platforms such as GitHub, GitLab, Bitbucket, Pagure, and Gitea.
  • Up to commit level spec generation: go2rpm can create a spec file based on a project's latest release or tag (default) or a custom version, tag, or commit.

Usage

To use go2rpm, execute the application with the necessary parameters:

go2rpm [OPTIONS] GO_IMPORT_PATH

Options

  • -r, --rpmautospec: Use autorelease and autochangelog features (default)
  • -n, --no-rpmautospec: Use static release and changelog instead of rpmautospec
  • -L, --use-new-versioning: Enable new naming scheme for versioned compat packages (default)
  • --no-use-new-versioning: Use older naming scheme for versioned compat packages
  • --no-auto-changelog-entry: Do not generate a changelog entry
  • --dynamic-buildrequires: Use dynamic BuildRequires feature (default)
  • -R, --no-dynamic-buildrequires: Do not use dynamic BuildRequires feature
  • -C, --clean: Clean cache for chosen Go import path (default)
  • --no-clean: Do not clean the cache
  • --clean-all: Clean all cached Go imports
  • -d, --create-directory: Save the final specfile output to NAME/NAME.spec
  • --name: Use a specific name for the spec file
  • --print-name: Print the generated package name and exit
  • -q, --no-spec-warnings: Exclude warning comments from generated specfile
  • -t, --tag: Use especified package tag
  • -a, --altipaths: Include alternate import paths
  • -c, --commit: Use especified package commit
  • -f, --forge: Forge URLs
  • -v, --version: Use especified package versions
  • --stdout: Print spec into stdout

Examples

# Generate specfile a project hosted on GitHub
go2rpm github.com/rhysd/actionlint

# Generate specfile for a project where import path doesn't match the repository
go2rpm --forge https://github.com/kubernetes/api k8s.io/api

# Generate specfile for a project using a specific commit
go2rpm --commit c2c7a15d6c994356c68dc7a14868c3519836286b --forge 'https://git.sr.ht/~emersion/go-scfg' 'git.sr.ht/~emersion/go-scfg'

# Generate specfile for a project using a specific version
go2rpm -v 2.1.0 github.com/hashicorp/hcl/v2

# Generate specfile with a custom name. This is useful for application packages.
go2rpm --name gh -f https://github.com/cli/cli github.com/cli/cli/v2

Requirements

  • Python 3
  • Git
  • Askalono (a license detection tool)
  • Aiohttp (for asynchronous HTTP requests)

License

This application is licensed under the MIT License. Feel free to modify and distribute it in accordance with the license terms.

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

go2rpm-1.14.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

go2rpm-1.14.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file go2rpm-1.14.0.tar.gz.

File metadata

  • Download URL: go2rpm-1.14.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.4

File hashes

Hashes for go2rpm-1.14.0.tar.gz
Algorithm Hash digest
SHA256 6b1aa806ec65a38dd3cb71c0e75babe5522f940ca281b92f6329997741faaa9a
MD5 9744759ee04f39de8bb0891404ba5a10
BLAKE2b-256 db55775a50b1a0c412db0b67c2e28790a89c7a3f5e02932f9d934c4bc108906b

See more details on using hashes here.

File details

Details for the file go2rpm-1.14.0-py3-none-any.whl.

File metadata

  • Download URL: go2rpm-1.14.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.4

File hashes

Hashes for go2rpm-1.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a05f3de6acafef09866a824073368be01970a3163e774a1c25155fa3f8e9d3f
MD5 b46463669f564ea87317e265fc3be54c
BLAKE2b-256 d7f1cd59e34137b7a7b87c865d4af4c96d39656876fff16b3c51d1233783b967

See more details on using hashes here.

Supported by

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