Note
A collection of lightweight Go utilities designed to interface with the SUSE Customer Center (SCC) API. These tools allow you to search for RPM packages and retrieve product information directly from SUSE's repositories without needing a registered or active system.
The primary tool for querying package details. It fetches the package name, available versions, architecture, release, and the specific repository identifier.
- Fuzzy Matching: Can search for partial names.
- Version Sorting: Intelligently sorts results by numeric version and release string.
- Product Context: Filters results by specific SUSE Product IDs (e.g., SLES 15 SP6, Liberty Linux 9).
A helper utility that fetches the live list of all available SUSE products and their unique IDs directly from the SCC.
- Live Data: Unlike the hardcoded list in
getrpm, this queries the API in real-time. - Formatting: Supports table output, one-line strings (for code updates), and JSON-like formats for integration with other scripts like
vercheck.py.
🛠️TODO🛠️ Merge both tools into a single one
- Version Verification: Quickly check if a specific security patch or version of
glibc,kernel, oropensslis available for a specific SUSE distribution. - Repository Discovery: Find the exact
identifier(e.g.,sle-module-basesystem/15.6/x86_64) needed for automation, SUSEConnect or RMT (Repository Mirroring Tool) configuration. - System Agnostic Checks: Main driver: Perform lookups from any machine (macOS, Windows, or non-SUSE Linux) without needing
zypperor a registered subscription. - CI/CD Integration: Use the structured output and exit codes to validate package availability before triggering build pipelines.
Since these are written in Go, you can compile them into single binaries:
# Build getrpm
go build -o getrpm getrpm.go
# Build listprodids
go build -o listprodids listprodids.goCurrently no makefile provided... we use the GitHub action workflow (on pushing release tags) to build binaries.
Hosted at getrpm@github
To find bash versions for SLES 15 SP5 x86_64 (Product ID 2465):
./getrpm -r bash -p 2465If you aren't sure of the exact name, use the -f flag:
./getrpm -r python3-base -f -p 2793To see which Product IDs are currently available on the SCC:
./listprodids
./listprodids | grep "15 SP7"To get a condensed list for script processing:
./listprodids --one| Option | Long Flag | Description |
|---|---|---|
-r |
--rpm |
Name of the RPM package (default: glibc) |
-p |
--product |
SUSE Product ID (default: 2795) |
-f |
--fuzzy |
Enable fuzzy search (matches partial names) |
-l |
--list |
Show the internal list of common Product IDs |
-v |
--verbose |
Debug mode; shows API URLs and raw JSON response |
-V |
--version |
Show build version and exit |
| Option | Long Flag | Description |
|---|---|---|
-1 |
--one |
Print IDs and Names in a single-line format |
--vercheck |
Format output for vercheck.py compatibility |
|
-V |
--version |
Show build version and exit |
The tool returns specific exit codes for easier automation:
- 0: Success. Anything else should be an error.
- 64: Invalid or missing parameters.
- 65: API request failed (network or 404).
- 66: Decoding failed (invalid JSON or no packages found).
These tools use the public-facing SUSE SCC API. While highly useful, detailed documentation for specific endpoints is limited. For mission-critical automation, consider the SUSE Manager API.
(c) ROSE SWE, Ralph Roth