markdown · 3114 bytes Raw Blame History

Fortress Packaging Summary

Quick Deployment Commands

AUR

cd fortress-aur
# Update PKGBUILD version
updpkgsums
makepkg --printsrcinfo > .SRCINFO
git add -A && git commit -m "Update to vX.Y.Z" && git push

RPM (repos.musicsian.com)

cd /home/espadon/src/fortress
./build-rpm.sh
./deploy-to-repo.sh
cd ~/src/repos-musicsian-com
git add RPMS/fortress-*.rpm fortress.repo
git commit -m "Add fortress X.Y.Z"
./deploy.sh

Homebrew

# Update fortress.rb with new version and sha256
brew install --build-from-source ./fortress.rb
brew test fortress
# Push to tap or submit PR to homebrew-core

Files Created

Packaging Files

  • PKGBUILD - AUR package definition (already existed)
  • fortress.spec - RPM spec file for CentOS/RHEL/Fedora
  • fortress.rb - Homebrew formula for macOS/Linux
  • fortress.install - AUR post-install script (already existed)

Repository Files

  • fortress.repo - YUM/DNF repository configuration file
    • Located at: ~/src/repos-musicsian-com/fortress.repo

Build Scripts

  • build-rpm.sh - Builds RPM package locally
  • deploy-to-repo.sh - Deploys RPM to repos.musicsian.com

Documentation

  • DEPLOYMENT.md - Complete deployment guide with all details
  • PACKAGING_SUMMARY.md - This file (quick reference)

Shell Integration Status

Platform Bash Fish Zsh
AUR Auto Auto Manual
RPM Auto Auto Manual
Homebrew Manual Manual Manual

Auto: Integration automatically set up during package installation Manual: User must add source line to their shell config

Homebrew Shell Integration Answer

Yes, we CAN automate shell integration on Homebrew, but with limitations:

What Homebrew CAN do:

  • Install shell integration files to a known location
  • Display clear post-install instructions via caveats
  • Make setup a single copy-paste command

What Homebrew CANNOT do:

  • Automatically modify user dotfiles (~/.bashrc, ~/.zshrc, etc.)
  • Write to system-wide profile.d directories (permissions)
  • Auto-source files without user action

The Solution: The Homebrew formula includes a caveats block that displays after installation:

==> Caveats
Add to your ~/.bashrc or ~/.zshrc:
  source /opt/homebrew/share/fortress/fortress.sh

This is the standard Homebrew approach and what users expect. It's a one-time manual step, but it's well-documented and simple.

Next Steps

  1. Test the RPM build (once fpm is installed):

    cd /home/espadon/src/fortress
    cargo install fpm  # If not already installed
    ./build-rpm.sh
    
  2. Create a GitHub release with the source tarball for version 0.1.0

  3. Update SHA256 checksums:

    • For AUR: Run updpkgsums in PKGBUILD directory
    • For Homebrew: Run shasum -a 256 fortress-0.1.0.tar.gz
  4. Deploy in order:

    • AUR (fastest, community repo)
    • RPM (your own repo)
    • Homebrew (via tap or homebrew-core PR)

Support

See DEPLOYMENT.md for complete details, troubleshooting, and automation ideas.

View source
1 # Fortress Packaging Summary
2
3 ## Quick Deployment Commands
4
5 ### AUR
6 ```bash
7 cd fortress-aur
8 # Update PKGBUILD version
9 updpkgsums
10 makepkg --printsrcinfo > .SRCINFO
11 git add -A && git commit -m "Update to vX.Y.Z" && git push
12 ```
13
14 ### RPM (repos.musicsian.com)
15 ```bash
16 cd /home/espadon/src/fortress
17 ./build-rpm.sh
18 ./deploy-to-repo.sh
19 cd ~/src/repos-musicsian-com
20 git add RPMS/fortress-*.rpm fortress.repo
21 git commit -m "Add fortress X.Y.Z"
22 ./deploy.sh
23 ```
24
25 ### Homebrew
26 ```bash
27 # Update fortress.rb with new version and sha256
28 brew install --build-from-source ./fortress.rb
29 brew test fortress
30 # Push to tap or submit PR to homebrew-core
31 ```
32
33 ## Files Created
34
35 ### Packaging Files
36 - **PKGBUILD** - AUR package definition (already existed)
37 - **fortress.spec** - RPM spec file for CentOS/RHEL/Fedora
38 - **fortress.rb** - Homebrew formula for macOS/Linux
39 - **fortress.install** - AUR post-install script (already existed)
40
41 ### Repository Files
42 - **fortress.repo** - YUM/DNF repository configuration file
43 - Located at: `~/src/repos-musicsian-com/fortress.repo`
44
45 ### Build Scripts
46 - **build-rpm.sh** - Builds RPM package locally
47 - **deploy-to-repo.sh** - Deploys RPM to repos.musicsian.com
48
49 ### Documentation
50 - **DEPLOYMENT.md** - Complete deployment guide with all details
51 - **PACKAGING_SUMMARY.md** - This file (quick reference)
52
53 ## Shell Integration Status
54
55 | Platform | Bash | Fish | Zsh |
56 |----------|------|------|-----|
57 | AUR | Auto | Auto | Manual |
58 | RPM | Auto | Auto | Manual |
59 | Homebrew | Manual | Manual | Manual |
60
61 **Auto**: Integration automatically set up during package installation
62 **Manual**: User must add `source` line to their shell config
63
64 ## Homebrew Shell Integration Answer
65
66 **Yes, we CAN automate shell integration on Homebrew, but with limitations:**
67
68 **What Homebrew CAN do:**
69 - Install shell integration files to a known location
70 - Display clear post-install instructions via `caveats`
71 - Make setup a single copy-paste command
72
73 **What Homebrew CANNOT do:**
74 - Automatically modify user dotfiles (~/.bashrc, ~/.zshrc, etc.)
75 - Write to system-wide profile.d directories (permissions)
76 - Auto-source files without user action
77
78 **The Solution:**
79 The Homebrew formula includes a `caveats` block that displays after installation:
80
81 ```
82 ==> Caveats
83 Add to your ~/.bashrc or ~/.zshrc:
84 source /opt/homebrew/share/fortress/fortress.sh
85 ```
86
87 This is the standard Homebrew approach and what users expect. It's a one-time manual step, but it's well-documented and simple.
88
89 ## Next Steps
90
91 1. **Test the RPM build** (once fpm is installed):
92 ```bash
93 cd /home/espadon/src/fortress
94 cargo install fpm # If not already installed
95 ./build-rpm.sh
96 ```
97
98 2. **Create a GitHub release** with the source tarball for version 0.1.0
99
100 3. **Update SHA256 checksums**:
101 - For AUR: Run `updpkgsums` in PKGBUILD directory
102 - For Homebrew: Run `shasum -a 256 fortress-0.1.0.tar.gz`
103
104 4. **Deploy in order**:
105 - AUR (fastest, community repo)
106 - RPM (your own repo)
107 - Homebrew (via tap or homebrew-core PR)
108
109 ## Support
110
111 See DEPLOYMENT.md for complete details, troubleshooting, and automation ideas.