Contributing to OwlArch Package Repository
Thank you for contributing! Follow these guidelines to maintain package quality and consistency.
Repository Structure
.
βββ extra/ # Package directories
β βββ package-name/
β β βββ PKGBUILD # Build recipe
β β βββ .SRCINFO # Auto-generated metadata
β β βββ README.markdown # Auto-generated metadata
βββ pages/ # Documentation site
βββ ...
Creating/Updating Packages
- Package Requirements
- Follow Arch Packaging Standards
- Use
makepkg --printsrcinfo > .SRCINFO
to generate metadata - Test builds locally with:
docker run --rm -v $(pwd):/pkg -w /pkg archlinux:latest makepkg -si --noconfirm
- New Packages
- Create directory:
extra/<package-name>
- Add
PKGBUILD
and generate.SRCINFO
- Verify dependencies exist in official repos or this repository
- Create the
README.markdown
with the structure specified below
--- layout: software title: Title permalink: /title --- [π Go back home](/OwlArchRepo/) # Title ## Introduction Description ## Features - ... - ... - ... ## Installation 1. Open a terminal. 2. Install ... using the following command: Β ```sh Β sudo pacman -S ... Β ``` ### Install verification ### Uninstall ## Usage ## Official documentation & More Info ## Contributing ## Support ## License <div style="display: flex; justify-content: space-between;"> <a href="prevtitle">π PrevTitle</a> <a href="nexttitle">π NextTitle</a> </div>
- Create directory:
- Updates
- Bump
pkgver
andpkgrel
appropriately - Update checksums with
updpkgsums
- Document significant changes in PKGBUILD comments and in the
README.markdown
- Bump
Branching & Pull Requests
- Branch Strategy
main
: Stable packages with automated deploymentfeature/*
: Work-in-progress changes (automatically tested)
- PR Checklist
- Valid
PKGBUILD
and.SRCINFO
- Local build test passed
- Dependencies properly declared
- Package name follows
lowercase-hyphenated
format - Version update reflected in
pkgver
/pkgrel
- Valid
Testing Locally
Simulate CI workflow:
# Build packages
docker run --rm -v $(pwd):/workspace -w /workspace archlinux:latest bash -c "
pacman -Syu --noconfirm &&
pacman -S --noconfirm base-devel &&
makepkg --noextract --noprepare --nocheck --nosign
"
# Verify repository structure
repo-add pkgs/x86_64/OwlArchRepo.db.tar.gz *.pkg.tar.zst
Common Issues
-
Build Failures
Check CI logs for:
error: failed to prepare transaction (package failed to build)
Common fixes: Update dependencies, fix checksums, or adjust build steps -
Database Conflicts
Ensure only one package provides the same binary/files
Deployment Process
On main
branch push:
- Builds all PKGBUILDs in
extra/
- Generates repository database (
OwlArchRepo.db
) - Deploys documentation to GitHub Pages
- Packages become immediately available via:
[OwlArchRepo] Server = https://leku2020.github.io/OwlArchRepo/pkgs/x86_64
Need Help?
- Check GitHub Actions logs
- Ask in Discussions
- Review existing PKGBUILD examples
Letβs keep the OSINT/malware analysis community tools sharp! π¦π