commandby aspiers

Obs

Run OBS project management commands

Installs: 0
Used in: 1 repos
Updated: 2d ago
$npx ai-builder add command aspiers/obs

Installs to .claude/commands/obs.md

Open Build Service (OBS) project management commands for home:aspiers

This command helps manage packages in the OBS home directory at
/home/adam/OBS/home/aspiers

## CRITICAL REQUIREMENT: BUILD FROM SOURCE ONLY

**NEVER use pre-built binaries, AppImages, or binary packages in OBS!**

The entire purpose and requirement of OBS is to build packages from source
code.  This ensures:

- Reproducible builds
- Security and transparency
- Distribution-specific optimizations
- License compliance verification

Always download source tarballs, not binary releases. If a package fails to
build from source, debug and fix the build process - do NOT look for pre-built
alternatives.

Reproducibility is also essential, so any files added via `osc add` must
have a clear origin.

## Setup and Basic Commands

### Create a new package:
```bash
read -p "Package name: " PKG_NAME
read -p "Source URL (tarball, git repo, etc.): " SOURCE_URL
cd /home/adam/OBS/home/aspiers
osc mkpac "$PKG_NAME"
cd "$PKG_NAME"
echo "Package $PKG_NAME created. Source: $SOURCE_URL"
echo "Next steps: download source, create .spec file, add files with 'osc add'"
```

### Common workflow for existing packages:
```bash
cd /home/adam/OBS/home/aspiers/<package-name>
osc up                   # Update from OBS
osc status               # Check local changes
osc add <new-files>      # Add new files
osc commit -m "message"  # Commit changes
```

## Building and Testing

### Build locally (takes 1-2+ minutes):
```bash
osc build openSUSE_Tumbleweed x86_64      # Build for Tumbleweed
osc build --clean                         # Clean build
```

### Monitor remote build results:
```bash
osc results                               # Show build status for all targets
osc results openSUSE_Tumbleweed           # Show results for specific target
osc results --watch                       # Watch results continuously
```

### Check build logs:
```bash
osc bl openSUSE_Tumbleweed x86_64         # View build log
osc blt openSUSE_Tumbleweed x86_64        # Tail build log (follow)
osc bl --last openSUSE_Tumbleweed x86_64  # Last failed build log
```

## Package Structure Examples

### Simple Python package (bsgit):
```spec
Name:           bsgit
Version:        0.7
Release:        0
Summary:        A simple git frontend for the openSUSE build service
License:        GPL v2 or later
Group:          Productivity/Text/Utilities
Source:         bsgit-%version.tar.gz
BuildRequires:  python-devel
Requires:       git-core osc

%prep
%setup

%build
%{__python} setup.py build

%install
%{__python} setup.py install --prefix=%{_prefix} --root %{buildroot}
```

### Package with patches (safecat):
```spec
Name:           safecat
Version:        1.13.2
Release:        0
Summary:        Write Data Safely to a Directory
License:        BSD-4-Clause
Source:         %{name}-%{_version}.tar.gz
Patch0:         01-respect-umask.patch
Patch1:         02-no-RPLINE-DTLINE.patch
BuildRequires:  cpp groff

%prep
%setup -q -n %{name}-%{_version}
%patch0 -p1
%patch1 -p1
```

### Using _service for automatic source updates:
```xml
<services>
  <service name="tar_scm" mode="disabled">
    <param name="url">http://git.savannah.gnu.org/r/devilspie2.git</param>
    <param name="scm">git</param>
    <param name="version">0.39</param>
    <param name="revision">v0.39</param>
  </service>
  <service name="recompress" mode="disabled">
    <param name="file">devilspie2-*.tar</param>
    <param name="compression">bz2</param>
  </service>
</services>
```

## Documentation and Guidelines

Essential reading:
- **Packaging Guidelines**: https://en.opensuse.org/openSUSE:Packaging_guidelines
- **OBS User Guide**: https://openbuildservice.org/help/manuals/obs-user-guide/
- **Spec file documentation**: https://en.opensuse.org/openSUSE:Specfile_guidelines
- Guidelines on **packaging patches**: https://en.opensuse.org/openSUSE:Packaging_Patches_guidelines

Language-specific guidelines:
- **Python**: https://en.opensuse.org/openSUSE:Packaging_Python
- **Ruby**: https://en.opensuse.org/openSUSE:Packaging_Ruby
- **JavaScript/Node.js**: https://en.opensuse.org/openSUSE:Packaging_nodejs

## Troubleshooting

### Common issues:
- Build fails: Check `osc bl` for errors
- Missing dependencies: Add to BuildRequires in .spec file
- Permission errors: Ensure proper file ownership in %files section
- Version conflicts: Update Version/Release in .spec file

### Useful debugging:
```bash
osc chroot openSUSE_Tumbleweed x86_64   # Enter build chroot
osc shell openSUSE_Tumbleweed x86_64    # Interactive shell in build env
osc log <package-name>                  # View commit history
```

Remember to always test builds locally before committing to OBS!

Quick Install

$npx ai-builder add command aspiers/obs

Details

Type
command
Author
aspiers
Slug
aspiers/obs
Created
6d ago