Skill: Paket Build ve Doğrulama
> AUR, Alpine APK ve RPM paket build süreçleri ve doğrulama adımları
Best use case
Skill: Paket Build ve Doğrulama is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
> AUR, Alpine APK ve RPM paket build süreçleri ve doğrulama adımları
Teams using Skill: Paket Build ve Doğrulama 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/packaging-build/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Skill: Paket Build ve Doğrulama Compares
| Feature / Agent | Skill: Paket Build ve Doğrulama | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
> AUR, Alpine APK ve RPM paket build süreçleri ve doğrulama adımları
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
# Skill: Paket Build ve Doğrulama
> AUR, Alpine APK ve RPM paket build süreçleri ve doğrulama adımları
---
## Ön Koşullar
- Docker kurulu olmalı (container build'leri için)
- İnternet bağlantısı (tarball indirme ve registry erişimi)
- Paketleme dosyaları `packaging/` dizininde mevcut
---
## Paket Dizin Yapısı
```
packaging/
├── aur/
│ └── PKGBUILD # Arch Linux AUR paketi
├── alpine/
│ └── APKBUILD # Alpine Linux paketi
├── alpine-repo/
│ └── bigfive@ahm3t0t.rsa.pub # Alpine repo public key
└── rpm/
└── bigfive-updater.spec # Fedora/RHEL RPM spec
```
---
## 1. AUR Paket Build (Arch Linux)
### Lokal Build (Docker ile)
```bash
docker run --rm -v "$(pwd):/src" archlinux:latest bash -c '
pacman -Syu --noconfirm base-devel git pacman-contrib
useradd -m builder
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# PKGBUILD kopyala
mkdir -p /tmp/build
cp /src/packaging/aur/PKGBUILD /tmp/build/
cd /tmp/build
# Build
chown -R builder:builder .
su builder -c "makepkg -sf --noconfirm"
echo "=== Oluşan paketler ==="
ls -la *.pkg.tar.zst
'
```
### PKGBUILD Güncelleme
Versiyon güncellerken:
```bash
cd packaging/aur
# 1. Versiyon değiştir
sed -i "s/^pkgver=.*/pkgver=6.5.1/" PKGBUILD
# 2. pkgrel sıfırla (yeni versiyon ise)
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
# 3. Checksum güncelle
# Docker ile:
docker run --rm -v "$(pwd):/pkg" archlinux:latest bash -c '
pacman -Sy --noconfirm pacman-contrib
useradd -m builder
cd /pkg
chown -R builder:builder .
su builder -c "updpkgsums"
su builder -c "makepkg --printsrcinfo > .SRCINFO"
'
```
### CI Otomasyonu
- `aur.yml` workflow: Release publish'te otomatik AUR push
- `packages.yml` workflow: Release publish'te paket build + release'e ekleme
- Gerekli secret: `AUR_SSH_KEY`
---
## 2. Alpine APK Build
### Lokal Build (Docker ile)
```bash
docker run --rm -v "$(pwd):/src" alpine:latest sh -c '
apk add --no-cache alpine-sdk bash curl sudo
# Build kullanıcısı oluştur
adduser -D builder
addgroup builder abuild
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
mkdir -p /var/cache/distfiles
chown builder:abuild /var/cache/distfiles
chmod 755 /var/cache/distfiles
# APKBUILD kopyala
mkdir -p /tmp/build
cp /src/packaging/alpine/APKBUILD /tmp/build/
cd /tmp/build
# Signing key oluştur
chown -R builder:builder .
su builder -c "abuild-keygen -a -n"
# Build
su builder -c "abuild checksum"
su builder -c "abuild -r"
echo "=== Oluşan paketler ==="
find /home/builder/packages -name "*.apk" -ls
'
```
### APKBUILD Güncelleme
```bash
cd packaging/alpine
sed -i "s/^pkgver=.*/pkgver=6.5.1/" APKBUILD
```
### Alpine Repo
- `alpine-repo.yml` workflow: APK build → APKINDEX → GitHub Pages'e deploy
- Signed repo: `ALPINE_PRIVATE_KEY` secret ile imzalanır
- Public key: `packaging/alpine-repo/bigfive@ahm3t0t.rsa.pub`
### Kullanıcı Kurulum
```bash
# Public key indir
sudo wget -O /etc/apk/keys/bigfive@ahm3t0t.rsa.pub \
https://ahm3t0t.github.io/bigfive-updater/bigfive@ahm3t0t.rsa.pub
# Repo ekle
echo "https://ahm3t0t.github.io/bigfive-updater/alpine/v3.20/main" | \
sudo tee -a /etc/apk/repositories
# Kur
sudo apk update
sudo apk add bigfive-updater
```
---
## 3. RPM Build (Fedora COPR)
### Lokal Build (Docker ile)
```bash
docker run --rm -v "$(pwd):/src" fedora:latest bash -c '
dnf install -y rpm-build rpmdevtools
# RPM build ortamını hazırla
rpmdev-setuptree
cp /src/packaging/rpm/bigfive-updater.spec ~/rpmbuild/SPECS/
# Kaynak tarball indir
VERSION="6.5.1"
cd ~/rpmbuild/SOURCES
curl -sL "https://github.com/CalmKernelTR/bigfive-updater/archive/v${VERSION}.tar.gz" \
-o "bigfive-updater-${VERSION}.tar.gz"
# SRPM build
rpmbuild -bs ~/rpmbuild/SPECS/bigfive-updater.spec
echo "=== Oluşan SRPM ==="
ls -la ~/rpmbuild/SRPMS/
# RPM build (tam)
rpmbuild -ba ~/rpmbuild/SPECS/bigfive-updater.spec
echo "=== Oluşan RPM ==="
ls -la ~/rpmbuild/RPMS/noarch/
'
```
### CI Otomasyonu
- `copr.yml` workflow: Release publish'te SRPM build → COPR upload
- Gerekli secret'lar: `COPR_LOGIN`, `COPR_TOKEN`
- COPR projesi: `tahmet/bigfive-updater`
---
## 4. Paket Doğrulama
### Build Sonrası Kontrol Listesi
Her paket build'den sonra şunları kontrol et:
#### Arch (AUR)
```bash
# Paket içeriğini kontrol et
tar -tf bigfive-updater-*.pkg.tar.zst | head -20
# Kurulum testi
pacman -U bigfive-updater-*.pkg.tar.zst --noconfirm
guncel --help
guncel --doctor
```
#### Alpine (APK)
```bash
# Paket içeriğini kontrol et
tar -tzf bigfive-updater-*.apk | head -20
# Kurulum testi
apk add --allow-untrusted bigfive-updater-*.apk
guncel --help
guncel --doctor
```
#### RPM
```bash
# Paket içeriğini kontrol et
rpm -qlp bigfive-updater-*.rpm
# Spec doğrulama
rpmlint ~/rpmbuild/SPECS/bigfive-updater.spec
```
### Beklenen Paket İçeriği
Her pakette şu dosyalar olmalı:
- `/usr/local/bin/guncel` (veya `/usr/bin/guncel`)
- `/usr/local/share/bigfive-updater/lang/tr.sh`
- `/usr/local/share/bigfive-updater/lang/en.sh`
- `/etc/bash_completion.d/guncel` veya `/usr/share/bash-completion/completions/guncel`
- `/usr/share/zsh/site-functions/_guncel`
- `/usr/share/fish/vendor_completions.d/guncel.fish`
- `/usr/share/man/man8/guncel.8.gz`
- `/etc/bigfive-updater.conf.example`
- `/etc/logrotate.d/bigfive-updater`
---
## 5. Release Akışı
Tam bir release için `release.sh` scripti kullanılır:
```bash
# Versiyon bump (major/minor/patch/pre)
./release.sh --bump patch
# Release akışı:
# 1. Versiyon numarasını günceller (guncel, lang/*.sh, install.sh, PKGBUILD, APKBUILD, spec)
# 2. CHANGELOG oluşturur
# 3. Git commit + signed tag
# 4. Tag push → release.yml tetiklenir
# 5. release.yml: GPG sign → SHA256SUMS → GitHub Release
# 6. packages.yml: AUR + Alpine build
# 7. aur.yml: AUR publish
# 8. alpine-repo.yml: Alpine repo deploy
# 9. copr.yml: COPR build
```
---
## Hata Ayıklama
### "source not found" hatası
Paket build sırasında dosya yolu değişiklikleri olabilir. `PKGBUILD`/`APKBUILD`/`spec` dosyasında `source` URL'sini kontrol et.
### Checksum uyumsuzluğu
Release tarball'ı değişmiş olabilir. `updpkgsums` (Arch) veya `abuild checksum` (Alpine) ile güncelle.
### COPR build başarısız
- Spec dosyasında `BuildRequires` kontrol et
- `mock` ile lokal build dene
- COPR log'larını kontrol et: `copr-cli build-monitor tahmet/bigfive-updater`Related Skills
Skill: Shell Lint ve Test
> ShellCheck + shfmt + BATS test çalıştırma ve hata düzeltme
Skill: Multi-Distro Testing
> Docker container'larda 5 dağıtım test matrisi çalıştırma ve hata çözümleme
Skill: i18n Senkronizasyon
> TR/EN dil dosyaları arasında mesaj senkronizasyonu ve tutarlılık kontrolü
team-builder
用于组合和派遣并行团队的交互式代理选择器
mcp-builder
Create MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. The quality of an MCP server is measured by how well it enables LLMs to accomplish real-world tasks.
mcp-builder-ms
Use this skill when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
hugging-face-tool-builder
Your purpose is now is to create reusable command line scripts and utilities for using the Hugging Face API, allowing chaining, piping and intermediate processing where helpful. You can access the API directly, as well as use the hf command line tool.
earllm-build
Build, maintain, and extend the EarLLM One Android project — a Kotlin/Compose app that connects Bluetooth earbuds to an LLM via voice pipeline.
building-native-ui
Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.
build
build
browser-extension-builder
Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing.
bazel-build-optimization
Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.