Skip to main content

create-aur-package

This skill should be used when the user asks to "create an AUR package", "make a new AUR package", "scaffold AUR package", "create PKGBUILD", "package for AUR", or mentions AUR package creation with a specific source type (npm, rust, go, git, binary, appimage). Provides comprehensive guidance for creating Arch User Repository packages with proper structure, checksums, and git setup.

معلومات المصدر

المستودع
asermax/claude-plugins
آخر نشاط في المصدر
٤ مايو ٢٠٢٦ في ١٥:٣٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
8 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
create-aur-package
description
This skill should be used when the user asks to "create an AUR package", "make a new AUR package", "scaffold AUR package", "create PKGBUILD", "package for AUR", or mentions AUR package creation with a specific source type (npm, rust, go, git, binary, appimage). Provides comprehensive guidance for creating Arch User Repository packages with proper structure, checksums, and git setup.
argument-hint
<package-name> <source-type>
Create a new AUR (Arch User Repository) package with proper structure, validation, and git setup. Package name: $ARGUMENTS[0] Source type: $ARGUMENTS[1] ## Workflow 1. **Gather package information**: - Package name (provided by user) - Source type (npm, rust, go, git, binary, appimage) - Fetch metadata from upstream (version, description, license, URL) 2. **Create package directory structure**: - Directory named after the package - `.gitignore` for build artifacts - `PKGBUILD` with appropriate structure for source type 3. **Generate checksums** (skip for `-git` packages): ```bash updpkgsums ``` 4. **Build and validate**: ```bash makepkg -f # Build the package namcap PKGBUILD # Lint PKGBUILD namcap *.pkg.tar.zst # Lint built package ``` 5. **Generate metadata**: ```bash makepkg --printsrcinfo > .SRCINFO ``` 6. **Initialize git and push to AUR**: ```bash git init git remote add origin ssh://aur@aur.archlinux.org/<package-name>.git git add . git commit -m "feat: initial commit for <package-name>" git push -u origin master ``` ## .gitignore Create with the following content: ``` pkg src <package-name>-* *.tar.zst ``` For NPM packages, use the actual package name (without scope for scoped packages). For AppImage packages, also include `squashfs-root`, `*.AppImage`, and the downloaded license file. ## Common PKGBUILD Structure All PKGBUILD files include these fields: ```bash pkgname=<package-name> pkgver=<version> pkgrel=1 pkgdesc="<package description>" arch=(any) # or (x86_64) for architecture-specific url="<upstream-url>" license=('<license>') depends=() # runtime dependencies makedepends=() # build-time dependencies source=(<source-url>) sha256sums=('SKIP') # Update with updpkgsums package() { # Installation steps } ``` ## Source-Specific Instructions Load the appropriate reference file based on source type: - **NPM packages**: See `references/npm-packages.md` - For Node.js packages from npm registry - **Rust packages**: See `references/rust-packages.md` - For Cargo-based Rust projects - **Go packages**: See `references/go-packages.md` - For Go modules - **VCS/Git packages**: See `references/vcs-packages.md` - For `-git` packages tracking upstream - **Binary packages**: See `references/binary-packages.md` - For pre-compiled binaries - **AppImage packages**: See `references/appimage-packages.md` - For AppImage binaries (typically Electron apps) ## Useful Commands | Command | Purpose | |---------|---------| | `updpkgsums` | Update sha256sums from source files | | `makepkg --printsrcinfo > .SRCINFO` | Generate .SRCINFO metadata | | `makepkg -f` | Build package (force rebuild) | | `makepkg -si` | Build and install package | | `namcap PKGBUILD` | Lint PKGBUILD for issues | | `namcap *.pkg.tar.zst` | Lint built package | ## Package Naming Conventions - **Standard**: `<package-name>` - For release tarballs - **VCS tracking**: `<package-name>-git` - For git repositories - **Binary**: `<package-name>-bin` - For pre-compiled binaries - **AppImage**: `<package-name>-appimage` - For AppImage binaries ## Additional Resources ### Reference Files - **`references/npm-packages.md`** - NPM package specifics (scoped packages, registry URLs, permission fixes) - **`references/rust-packages.md`** - Rust/Cargo package specifics (build flags, LTO issues, workspaces) - **`references/go-packages.md`** - Go module specifics (build flags, GOPATH handling) - **`references/vcs-packages.md`** - VCS/Git package specifics (pkgver() function, provides/conflicts) - **`references/binary-packages.md`** - Binary package specifics (release downloads, architecture handling) - **`references/appimage-packages.md`** - AppImage package specifics (extraction, desktop integration, /opt/ install) ### Examples - **`examples/pkgbuild-template`** - Basic PKGBUILD template structure
عرض على GitHub