Commit graph

8 commits

Author SHA1 Message Date
torlando-tech
37d6302dd2 fix: add gobject-introspection to Arch for PyGObject compilation
PyGObject compilation on Arch requires gobject-introspection package
which provides the development files and .pc files needed by meson.

Error was: Dependency 'gobject-introspection-1.0' is required but not found.

Changes:
- install.sh: Add gobject-introspection to Arch system dependencies
- install.sh: Add comment explaining it's needed for PyGObject compilation
- README.md: Document gobject-introspection requirement for Arch

This completes the Arch Linux dependency chain for PyGObject compilation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 21:56:21 -04:00
torlando-tech
44752c4d36 fix: skip python-gobject on Arch to avoid PyGObject version conflict
Arch Linux has PyGObject 3.54.5 in python-gobject package, but bluezero
requires PyGObject <3.52.0, causing pip to fail when trying to replace
the system version.

Solution: Don't install python-gobject system package on Arch. Let pip
compile the compatible PyGObject version (3.50.2) instead.

Changes:
- install.sh: Remove python-gobject from Arch pacman install
- install.sh: Add explanatory warning about PyGObject compilation
- tests/test_installer.sh: Don't check for python-gobject on Arch
- tests/test_installer.sh: Add comment explaining why it's skipped
- tests/test_installer.sh: Update summary for Arch (PyGObject compiled)
- README.md: Remove python-gobject from Arch instructions
- README.md: Explain version incompatibility and compilation requirement

Result:
- Debian/Ubuntu: All system packages, zero compilation (~1 min)
- Arch Linux: System packages + PyGObject compilation (~2-3 min)

Trade-off accepted: Arch users get longer install time in exchange for
compatibility with bluezero's PyGObject version requirement.

Fixes: error: uninstall-no-record-file (PyGObject 3.54.5 conflict)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 21:52:08 -04:00
torlando-tech
ee01132ea1 fix: add base-devel to Arch Linux for PyGObject compilation
Arch Linux has unique pip/system package integration where pip doesn't
recognize system python-gobject as satisfying PyGObject dependency,
causing bluezero to try compiling PyGObject from source.

Solution: Install base-devel on Arch to provide build tools (gcc, make, meson)

Changes:
- install.sh: Add base-devel to Arch system dependencies
- install.sh: Add note explaining why build tools needed on Arch
- install.sh: Use --needed flag to skip already installed packages
- README.md: Document base-devel requirement for Arch users
- README.md: Explain Arch vs Debian/Ubuntu compilation differences
- tests/test_installer.sh: Expect build tools on Arch (verify base-devel installed)
- tests/test_installer.sh: Update summary to reflect Arch compilation

Rationale:
- AUR python-bluezero is outdated (v0.9.0 vs pip v0.9.1)
- AUR package has 0 votes (rarely used by community)
- base-devel commonly installed on Arch systems anyway
- Keeps latest bluezero version
- Simpler than full AUR integration

Impact:
- Debian/Ubuntu: No compilation (< 1 min install)
- Arch Linux: Some compilation (~3 min install)
- Still faster than compiling everything on Debian

Fixes Arch Linux CI failure: "Unknown compiler(s): gcc not found"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 21:39:57 -04:00
torlando-tech
7a350ec0e1 fix: use system packages to avoid compilation (fixes #4)
Strategy 1: Use pre-compiled system packages instead of building from source
- install.sh: Add python3-gi, python3-cairo to apt-get install
- install.sh: Add python-gobject, python-cairo to pacman install
- install.sh: Install only bleak and bluezero via pip (skip compiled packages)
- README.md: Update dependency instructions with system packages
- README.md: Add explanation of why system packages are preferred

Strategy 2: Add CI integration test for fresh Debian/Ubuntu systems
- tests/test_installer.sh: New integration test script
- .github/workflows/test.yml: Add installer-test job with matrix for Debian 12, Ubuntu 22.04, 24.04
- Tests reproduce real user experience and catch missing dependencies

Benefits:
- Zero compilation time (seconds vs minutes)
- No build tools needed (meson, cmake)
- No dev headers needed (libglib2.0-dev, libcairo2-dev, etc.)
- Faster installation on resource-constrained devices (Raspberry Pi)
- Prevents future dependency documentation issues

Fixes #4

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 19:59:26 -04:00
torlando-tech
4b7a255950 feat: add --config flag to install.sh for custom config directories
The install.sh script now supports an optional --config flag to specify
a custom Reticulum config directory during installation.

Changes:
- Add command-line argument parsing for --config flag
- Add --help flag to display usage information
- Update installation path logic to use custom or default directory
- Update final instructions to show correct rnsd command with --config flag
- Document the new --config flag in README.md

Usage:
  ./install.sh                           # Install to ~/.reticulum (default)
  ./install.sh --config /custom/path     # Install to custom directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 19:34:40 -04:00
torlando-tech
80d8ff7c24 fix: support custom config directories via RNS.Reticulum.configdir
The BLE interface now dynamically resolves the interface directory
by checking RNS.Reticulum.configdir when loaded via exec() by Reticulum.
This allows users to specify custom config directories using the
--config flag without encountering import errors.

Changes:
- Update BLEInterface.py to use RNS.Reticulum.configdir when available
- Add fallback to default ~/.reticulum/interfaces for backward compatibility
- Add comprehensive test coverage for config directory resolution
- Update documentation to mention custom config directory support

Fixes #2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 19:09:48 -04:00
torlando-tech
91a3c89521 docs: add ko-fi widget 2025-10-26 19:35:59 -04:00
torlando-tech
486f210ae4 Initial commit: BLE Reticulum interface 2025-10-26 19:14:14 -04:00