All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 59s
Release Docker Image / define-variables (pull_request) Successful in 2s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m30s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 6m22s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 9m17s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 9m5s
Release Docker Image / merge (pull_request) Successful in 9s
Build / Fedora RPM / build (push) Successful in 24m19s
Build and publish RPM packages for Fedora using rpkg and official rust-packaging macros. Packages are automatically signed by Forgejo's built-in package registry (introduced in v9.0). Publishes packages to organised groups: - continuwuity (binary): base group (stable/dev/branch-name) - continuwuity-debuginfo: GROUP-debug - continuwuity (source RPM): GROUP-src Workflow triggers on pushes to relevant paths and version tags (v*). Tagged releases use clean version numbers (v1.2.3 becomes 1.2.3-1) while branch builds use sanitised branch name versioning. Uses dnf builddep to install build dependencies directly from the generated SRPM, ensuring consistency between CI and spec file without duplication. This also prevents hiding packaging issues that could occur with --nodeps fallbacks.
201 lines
4.6 KiB
Markdown
201 lines
4.6 KiB
Markdown
# RPM Installation Guide
|
|
|
|
Continuwuity is available as RPM packages for Fedora, RHEL, and compatible distributions.
|
|
|
|
The RPM packaging files are maintained in the `fedora/` directory:
|
|
- `continuwuity.spec.rpkg` - RPM spec file using rpkg macros for building from git
|
|
- `continuwuity.service` - Systemd service file for the server
|
|
- `RPM-GPG-KEY-continuwuity.asc` - GPG public key for verifying signed packages
|
|
|
|
RPM packages built by CI are signed with our GPG key (Ed25519, ID: `5E0FF73F411AAFCA`).
|
|
|
|
```bash
|
|
# Import the signing key
|
|
sudo rpm --import https://forgejo.ellis.link/continuwuation/continuwuity/raw/branch/main/fedora/RPM-GPG-KEY-continuwuity.asc
|
|
|
|
# Verify a downloaded package
|
|
rpm --checksig continuwuity-*.rpm
|
|
```
|
|
|
|
## Installation methods
|
|
|
|
**Stable releases** (recommended)
|
|
|
|
```bash
|
|
# Add the repository and install
|
|
sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/stable/continuwuation.repo
|
|
sudo dnf install continuwuity
|
|
```
|
|
|
|
**Development builds** from main branch
|
|
|
|
```bash
|
|
# Add the dev repository and install
|
|
sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/dev/continuwuation.repo
|
|
sudo dnf install continuwuity
|
|
```
|
|
|
|
**Feature branch builds** (example: `tom/new-feature`)
|
|
|
|
```bash
|
|
# Branch names are sanitized (slashes become hyphens, lowercase only)
|
|
sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/tom-new-feature/continuwuation.repo
|
|
sudo dnf install continuwuity
|
|
```
|
|
|
|
**Direct installation** without adding repository
|
|
|
|
```bash
|
|
# Latest stable release
|
|
sudo dnf install https://forgejo.ellis.link/api/packages/continuwuation/rpm/stable/continuwuity
|
|
|
|
# Latest development build
|
|
sudo dnf install https://forgejo.ellis.link/api/packages/continuwuation/rpm/dev/continuwuity
|
|
|
|
# Specific feature branch
|
|
sudo dnf install https://forgejo.ellis.link/api/packages/continuwuation/rpm/branch-name/continuwuity
|
|
```
|
|
|
|
**Manual repository configuration** (alternative method)
|
|
|
|
```bash
|
|
cat << 'EOF' | sudo tee /etc/yum.repos.d/continuwuity.repo
|
|
[continuwuity]
|
|
name=Continuwuity - Matrix homeserver
|
|
baseurl=https://forgejo.ellis.link/api/packages/continuwuation/rpm/stable
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=https://forgejo.ellis.link/continuwuation/continuwuity/raw/branch/main/fedora/RPM-GPG-KEY-continuwuity.asc
|
|
EOF
|
|
|
|
sudo dnf install continuwuity
|
|
```
|
|
|
|
## Package management
|
|
|
|
**Automatic updates** with DNF Automatic
|
|
|
|
```bash
|
|
# Install and configure
|
|
sudo dnf install dnf-automatic
|
|
sudo nano /etc/dnf/automatic.conf # Set: apply_updates = yes
|
|
sudo systemctl enable --now dnf-automatic.timer
|
|
```
|
|
|
|
**Manual updates**
|
|
|
|
```bash
|
|
# Check for updates
|
|
sudo dnf check-update continuwuity
|
|
|
|
# Update to latest version
|
|
sudo dnf update continuwuity
|
|
```
|
|
|
|
**Switching channels** (stable/dev/feature branches)
|
|
|
|
```bash
|
|
# List enabled repositories
|
|
dnf repolist | grep continuwuation
|
|
|
|
# Disable current repository
|
|
sudo dnf config-manager --set-disabled continuwuation-stable # or -dev, or branch name
|
|
|
|
# Enable desired repository
|
|
sudo dnf config-manager --set-enabled continuwuation-dev # or -stable, or branch name
|
|
|
|
# Update to the new channel's version
|
|
sudo dnf update continuwuity
|
|
```
|
|
|
|
**Verifying installation**
|
|
|
|
```bash
|
|
# Check installed version
|
|
rpm -q continuwuity
|
|
|
|
# View package information
|
|
rpm -qi continuwuity
|
|
|
|
# List installed files
|
|
rpm -ql continuwuity
|
|
|
|
# Verify package integrity
|
|
rpm -V continuwuity
|
|
```
|
|
|
|
## Service management and removal
|
|
|
|
**Systemd service commands**
|
|
|
|
```bash
|
|
# Start the service
|
|
sudo systemctl start conduwuit
|
|
|
|
# Enable on boot
|
|
sudo systemctl enable conduwuit
|
|
|
|
# Check status
|
|
sudo systemctl status conduwuit
|
|
|
|
# View logs
|
|
sudo journalctl -u conduwuit -f
|
|
```
|
|
|
|
**Uninstallation**
|
|
|
|
```bash
|
|
# Stop and disable the service
|
|
sudo systemctl stop conduwuit
|
|
sudo systemctl disable conduwuit
|
|
|
|
# Remove the package
|
|
sudo dnf remove continuwuity
|
|
|
|
# Remove the repository (optional)
|
|
sudo rm /etc/yum.repos.d/continuwuation-*.repo
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
**GPG key errors**: Temporarily disable GPG checking
|
|
|
|
```bash
|
|
sudo dnf --nogpgcheck install continuwuity
|
|
```
|
|
|
|
**Repository metadata issues**: Clear and rebuild cache
|
|
|
|
```bash
|
|
sudo dnf clean all
|
|
sudo dnf makecache
|
|
```
|
|
|
|
**Finding specific versions**
|
|
|
|
```bash
|
|
# List all available versions
|
|
dnf --showduplicates list continuwuity
|
|
|
|
# Install a specific version
|
|
sudo dnf install continuwuity-<version>
|
|
```
|
|
|
|
## Building locally
|
|
|
|
Build the RPM locally using rpkg:
|
|
|
|
```bash
|
|
# Install dependencies
|
|
sudo dnf install rpkg rpm-build cargo-rpm-macros systemd-rpm-macros
|
|
|
|
# Clone the repository
|
|
git clone https://forgejo.ellis.link/continuwuation/continuwuity.git
|
|
cd continuwuity
|
|
|
|
# Build SRPM
|
|
rpkg srpm
|
|
|
|
# Build RPM
|
|
rpmbuild --rebuild *.src.rpm
|
|
```
|