Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ham Radio DEB Repository

Debian/Ubuntu package repository for Ham Radio software, hosted on GitHub Pages.

Build Status

🌐 Repository URL

πŸ“¦ Available Packages

Core MMDVM Software

Package Description Components Upstream
mmdvmhost MMDVM Host Software & Calibration Tool MMDVMHost, MMDVMCal, RemoteCommand MMDVMHost & MMDVMCal
dstarrepeater D-Star Repeater Controller dstarrepeaterd, dstarrepeaterconfig DStarRepeater

Gateway & Client Packages

Package Description Components Upstream
dmrclients DMR Gateway and Cross-Mode converters DMRGateway, DMR2YSF, DMR2NXDN DMRGateway & MMDVM_CM
dstarclients D-Star Gateway and tools DStarGateway, dgwtimeserver, dgwtexttransmit, dgwvoicetransmit DStarGateway
ysfclients YSF Gateway, Parrot, DGId Gateway and Cross-Mode converters YSFGateway, YSFParrot, DGIdGateway, YSF2DMR, YSF2NXDN, YSF2P25 YSFClients & MMDVM_CM
nxdnclients NXDN Gateway, Parrot and Cross-Mode converter NXDNGateway, NXDNParrot, NXDN2DMR NXDNClients & MMDVM_CM
p25clients P25 Gateway and Parrot P25Gateway, P25Parrot P25Clients
pocsagclients POCSAG/DAPNET Gateway for paging DAPNETGateway DAPNETGateway
fmclients FM Gateway for analog-to-digital bridging FMGateway FMGateway
aprsclients APRS Gateway between APRS-IS and RF APRSGateway APRSGateway

🐧 Supported Debian/Ubuntu Versions

Debian

  • Debian 13 "Trixie" (stable)
  • Debian 12 "Bookworm" (oldstable)

Ubuntu

  • Ubuntu 25.10 "Questing Quokka" (use bookworm packages)
  • Ubuntu 25.04 "Plucky Puffin" (use bookworm packages)
  • Ubuntu 24.04 LTS "Noble" (use bookworm packages)
  • Ubuntu 22.04 LTS "Jammy" (use bookworm packages)

Raspberry Pi OS

  • Raspberry Pi OS (Current - based on Trixie, use trixie packages)
  • Raspberry Pi OS (Legacy - based on Bookworm, use bookworm packages)

πŸ–₯️ Supported Architectures

  • amd64 - 64-bit Intel/AMD
  • arm64 - 64-bit ARM (Raspberry Pi 3/4/5 64-bit OS)
  • armhf - 32-bit ARM (Raspberry Pi, ARMv7)

πŸš€ Quick Start

Installation

Add the repository and install packages on your Debian/Ubuntu system:

# Add GPG key
wget -qO - https://deb.pistar.uk/hamradio.gpg | sudo gpg --dearmor -o /usr/share/keyrings/hamradio.gpg
# Add repository (choose your Debian version)
# For Debian 13 (Trixie) / Raspberry Pi OS (Current)
echo "deb [signed-by=/usr/share/keyrings/hamradio.gpg] https://deb.pistar.uk/ trixie main" | sudo tee /etc/apt/sources.list.d/hamradio.list
# For Debian 12 (Bookworm) / Ubuntu 22.04-25.10 / Raspberry Pi OS (Legacy)
echo "deb [signed-by=/usr/share/keyrings/hamradio.gpg] https://deb.pistar.uk/ bookworm main" | sudo tee /etc/apt/sources.list.d/hamradio.list
# Update and install
sudo apt update
sudo apt install mmdvmhost dmrclients ysfclients

Configuration

All packages store configuration in package-specific directories:

# Configuration files location
/etc/mmdvmhost/ # MMDVM Host configuration
/etc/dmrclients/ # DMR Gateway and cross-mode configs
/etc/ysfclients/ # YSF Gateway, DGId, and cross-mode configs
/etc/dstarclients/ # D-Star gateway configs
/etc/dstarrepeater/ # D-Star repeater configuration
/etc/nxdnclients/ # NXDN gateway and cross-mode configs
/etc/p25clients/ # P25 gateway config
/etc/aprsclients/ # APRS gateway config
/etc/pocsagclients/ # DAPNET gateway config
/etc/fmclients/ # FM gateway config
# Example: Configure MMDVM Host
sudo cp /etc/mmdvmhost/MMDVMHost.ini.example /etc/mmdvmhost/MMDVMHost.ini
sudo nano /etc/mmdvmhost/MMDVMHost.ini
# Example: Configure DMR Gateway
sudo cp /etc/dmrclients/DMRGateway.ini.example /etc/dmrclients/DMRGateway.ini
sudo nano /etc/dmrclients/DMRGateway.ini
# Example: Configure D-Star Repeater
sudo cp /etc/dstarrepeater/dstarrepeater.conf.example /etc/dstarrepeater/dstarrepeater.conf
sudo nano /etc/dstarrepeater/dstarrepeater.conf

Starting Services

Services are managed via systemd:

# Start services
sudo systemctl start mmdvmhost # MMDVM Host
sudo systemctl start dmrgateway # DMR Gateway
sudo systemctl start ysfgateway # YSF Gateway
sudo systemctl start dstargateway # D-Star Gateway
sudo systemctl start dstarrepeater # D-Star Repeater Controller
sudo systemctl start nxdngateway # NXDN Gateway
sudo systemctl start p25gateway # P25 Gateway
sudo systemctl start aprsgateway # APRS Gateway
sudo systemctl start dapnetgateway # DAPNET/POCSAG Gateway
# Enable at boot
sudo systemctl enable mmdvmhost
sudo systemctl enable dmrgateway
sudo systemctl enable ysfgateway
sudo systemctl enable dstarrepeater
# Check status
sudo systemctl status mmdvmhost

πŸ”§ Building Packages

Packages are built using GitHub Actions. To trigger a build:

  1. Go to Actions
  2. Select "Build Debian Packages" workflow
  3. Click "Run workflow"
  4. Select options:
    • Package: Choose specific package or "all"
    • Debian Version: Choose specific version or "all"
  5. Click "Run workflow"

The build process:

  • Clones source from upstream git repositories
  • Builds for all architectures using Docker and QEMU
  • Creates DEB packages following Debian standards
  • Generates repository metadata (Packages, Release files)
  • Deploys to GitHub Pages

Automatic Builds

The repository can monitor upstream repositories for changes and automatically rebuild packages when updates are detected (workflow available but not scheduled by default).

πŸ“ Package Versioning

Packages use date-based versioning with git commit tracking:

  • Format: YYYY.MM.DD-r{revision}
  • Example: 2025εΉ΄01月02ζ—₯-r1
  • Git commit hash is embedded in the package description

πŸ”‘ Repository Signing

The repository uses GPG signing for security:

All repository metadata (Release files) can be signed with GPG for APT secure verification.

πŸ› οΈ Development

Repository Structure

MMDVM_DEB/
β”œβ”€β”€ .github/workflows/ # GitHub Actions workflows
β”‚ β”œβ”€β”€ build-debian-packages.yml
β”‚ β”œβ”€β”€ check-upstream-updates.yml
β”‚ └── cleanup-old-packages.yml
β”œβ”€β”€ packages/ # Package definitions
β”‚ β”œβ”€β”€ mmdvmhost/
β”‚ β”œβ”€β”€ dmrclients/ # DMRGateway, DMR2YSF, DMR2NXDN
β”‚ β”œβ”€β”€ dstarclients/ # DStarGateway and tools
β”‚ β”œβ”€β”€ dstarrepeater/ # D-Star Repeater Controller
β”‚ β”œβ”€β”€ ysfclients/ # YSFGateway, YSFParrot, DGIdGateway, YSF2*
β”‚ β”œβ”€β”€ nxdnclients/ # NXDNGateway, NXDNParrot, NXDN2DMR
β”‚ β”œβ”€β”€ p25clients/ # P25Gateway, P25Parrot
β”‚ β”œβ”€β”€ pocsagclients/ # DAPNETGateway
β”‚ β”œβ”€β”€ fmclients/ # FMGateway
β”‚ └── aprsclients/ # APRSGateway
β”‚ β”œβ”€β”€ build.sh # Build script
β”‚ └── source.conf # Source configuration
β”œβ”€β”€ keys/ # GPG public key
β”œβ”€β”€ scripts/ # Build and maintenance scripts
β”œβ”€β”€ docs/ # Documentation
└── deploy/ # GitHub Pages deployment (auto-generated)
 β”œβ”€β”€ index.html # Repository landing page
 β”œβ”€β”€ dists/ # APT repository structure
 β”‚ β”œβ”€β”€ bookworm/
 β”‚ └── trixie/
 └── pool/ # Package pool
 └── main/

Package Organization

The repository follows Debian packaging conventions:

  • Protocol-specific clients: dmrclients, dstarclients, ysfclients, nxdnclients, p25clients
    • Each contains the main gateway, parrot/test tools, and cross-mode converters where applicable
  • Core software: mmdvmhost - The main MMDVM host software with calibration tools
  • Repeater controller: dstarrepeater - D-Star repeater system
  • Single-purpose clients: aprsclients, pocsagclients, fmclients

Adding New Packages

  1. Create package directory: packages/{package_name}/
  2. Add build.sh script with build instructions
  3. Add source.conf with source repository information
  4. Test locally with Docker
  5. Commit and run workflow

See docs/CONTRIBUTING.md for detailed instructions.

Local Testing

Test builds locally using Docker:

# Clone repository
git clone https://github.com/MW0MWZ/MMDVM_DEB.git
cd MMDVM_DEB
# Test build (requires Docker)
cd packages/mmdvmhost
OUTPUT_DIR=./output ARCH=amd64 DEBIAN_VERSION=bookworm ./build.sh
# Check output
ls -la output/

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add your package following the guidelines
  4. Submit a pull request

All packages must be Ham Radio related and build from source.

πŸ“œ License

  • Repository infrastructure: MIT License
  • Individual packages maintain their upstream licenses
  • Most packages: GPL-2.0-or-later

πŸ‘€ Maintainer

MW0MWZ - andy@mw0mwz.co.uk

πŸ”— Links


Built with ❀️ for the Amateur Radio community by Andy Taylor (MW0MWZ)

About

100% GitHub Hosted Debian Repo for the G4KLX (and others) Digital Radio Softwares

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /