rpm-spec-generator

Generate RPM spec files for Fedora, RHEL, and CentOS distributions

509 stars

Best use case

rpm-spec-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Generate RPM spec files for Fedora, RHEL, and CentOS distributions

Teams using rpm-spec-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/rpm-spec-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/desktop-development/skills/rpm-spec-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/rpm-spec-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How rpm-spec-generator Compares

Feature / Agentrpm-spec-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Generate RPM spec files for Fedora, RHEL, and CentOS distributions

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# rpm-spec-generator

Generate RPM spec files for Fedora, RHEL, CentOS, and other RPM-based distributions.

## Capabilities

- Generate .spec files
- Configure package metadata
- Define build requirements
- Set up scriptlets
- Configure file lists
- Handle desktop integration
- Configure changelog

## Input Schema

```json
{
  "type": "object",
  "properties": {
    "projectPath": { "type": "string" },
    "packageName": { "type": "string" },
    "version": { "type": "string" },
    "release": { "type": "string", "default": "1" },
    "buildRequires": { "type": "array" },
    "requires": { "type": "array" }
  },
  "required": ["projectPath", "packageName", "version"]
}
```

## Spec File Example

```spec
Name:           myapp
Version:        1.0.0
Release:        1%{?dist}
Summary:        My Application

License:        MIT
URL:            https://example.com/myapp
Source0:        %{name}-%{version}.tar.gz

BuildRequires:  gcc
Requires:       glibc, gtk3

%description
A longer description of my application.

%prep
%setup -q

%build
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}

%files
%{_bindir}/myapp
%{_datadir}/applications/myapp.desktop

%changelog
* Mon Jan 01 2024 Your Name <email@example.com> - 1.0.0-1
- Initial release
```

## Build Command

```bash
rpmbuild -ba myapp.spec
```

## Related Skills

- `deb-package-builder`
- `linux-gpg-signing`