Skip to content

Commit

Permalink
Add org.meshtastic.meshtasticd
Browse files Browse the repository at this point in the history
  • Loading branch information
vidplace7 committed Jan 19, 2025
1 parent 746ea89 commit 9738bac
Show file tree
Hide file tree
Showing 18 changed files with 1,070 additions and 0 deletions.
24 changes: 24 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: CI

on:
push:
branches: [meshtasticd]
pull_request:

jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-24.04
container:
image: bilelmoussaoui/flatpak-github-actions:freedesktop-24.08
options: --privileged
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: meshtasticd.flatpak
manifest-path: org.meshtastic.meshtasticd.yaml
cache-key: flatpak-builder-${{ github.sha }}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.vscode/settings.json

.flatpak
.flatpak-builder
build
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "shared-modules"]
path = shared-modules
url = https://github.com/flathub/shared-modules.git
675 changes: 675 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions meshtasticd-wrapper.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

CONF_DIR="$XDG_CONFIG_HOME/meshtasticd"

# Ensure conf directories exist
mkdir -p "$CONF_DIR/config.d"
mkdir -p "$CONF_DIR/available.d"

# Always copy available.d config files
cp -R /app/share/meshtasticd/available.d/* "$CONF_DIR/available.d/"

# Copy default config if it doesn't exist
if [ ! -f "$CONF_DIR/config.yaml" ]; then
echo "Copying default config to $CONF_DIR/config.yaml"
cp /app/share/meshtasticd/config-dist.yaml $CONF_DIR/config.yaml
fi

exec meshtasticd "--fsdir=$XDG_DATA_HOME" "--config=$XDG_CONFIG_HOME/meshtasticd/config.yaml" "$@"
8 changes: 8 additions & 0 deletions modules/i2c-tools.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: i2c-tools
buildsystem: simple
build-commands:
- make PREFIX=${FLATPAK_DEST} install
sources:
- type: archive
url: https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/snapshot/i2c-tools-4.4.tar.gz
sha256: af01d0fbe78e109a2db7137c7e9bfda3f3fb236c3177744c0f2695d1056cde71
8 changes: 8 additions & 0 deletions modules/jansson.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: jansson
buildsystem: cmake-ninja
config-opts:
- -DJANSSON_BUILD_DOCS=OFF
sources:
- type: archive
url: https://github.com/akheron/jansson/archive/refs/tags/v2.14.tar.gz
sha256: c739578bf6b764aa0752db9a2fdadcfe921c78f1228c7ec0bb47fa804c55d17b
6 changes: 6 additions & 0 deletions modules/libgpiod.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: libgpiod
buildsystem: autotools
sources:
- type: archive
url: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-2.2.tar.gz
sha256: ae35329db7027c740e90c883baf27c26311f0614e6a7b115771b28188b992aec
6 changes: 6 additions & 0 deletions modules/microhttpd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: microhttpd
buildsystem: autotools
sources:
- type: archive
url: https://ftp.wayne.edu/gnu/libmicrohttpd/libmicrohttpd-0.9.77.tar.gz
sha256: 9e7023a151120060d2806a6ea4c13ca9933ece4eacfc5c9464d20edddb76b0a0
6 changes: 6 additions & 0 deletions modules/orcania.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: orcania
buildsystem: cmake-ninja
sources:
- type: archive
url: https://github.com/babelouest/orcania/archive/refs/tags/v2.3.3.tar.gz
sha256: e26947f7622acf3660b71fb8018ee791c97376530ab6c4a00e4aa2775e052626
9 changes: 9 additions & 0 deletions modules/ulfius.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: ulfius
buildsystem: cmake-ninja
config-opts:
- -DWITH_YDER=off
- -DBUILD_UWSC=off
sources:
- type: archive
url: https://github.com/babelouest/ulfius/archive/refs/tags/v2.7.15.tar.gz
sha256: 19cf789b2af1919b69f77c7701237bfc318a9781ec657b68fd4b6ffa9d53f111
12 changes: 12 additions & 0 deletions modules/yaml-cpp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: yaml-cpp
buildsystem: cmake-ninja
config-opts:
- -DBUILD_SHARED_LIBS=ON
- -DYAML_BUILD_SHARED_LIBS=ON
- -DYAML_CPP_BUILD_TOOLS=OFF
- -DYAML_CPP_BUILD_TESTS=OFF
- -DYAML_CPP_BUILD_CONTRIB=OFF
sources:
- type: archive
url: https://github.com/jbeder/yaml-cpp/archive/refs/tags/0.8.0.tar.gz
sha256: fbe74bbdcee21d656715688706da3c8becfd946d92cd44705cc6098bb23b3a16
9 changes: 9 additions & 0 deletions modules/yder.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: yder
buildsystem: cmake-ninja
config-opts:
- -DWITH_JOURNALD=off
- -DINSTALL_HEADER=on
sources:
- type: archive
url: https://github.com/babelouest/yder/archive/refs/tags/v1.4.20.tar.gz
sha256: c1a7f2281514d0d0bba912b6b70f371d8c127ccfd644b8c438c9301a0fd4c5f2
70 changes: 70 additions & 0 deletions org.meshtastic.meshtasticd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
id: org.meshtastic.meshtasticd
runtime: org.freedesktop.Platform
runtime-version: '24.08'
sdk: org.freedesktop.Sdk
command: meshtasticd-wrapper.sh
modules:
- name: meshtasticd
buildsystem: simple
build-options:
build-args:
# PlatformIO requires internet access to download pkgs
- --share=network
build-commands:
- platformio run -e native
- install -Dm755 .pio/build/native/program /app/bin/meshtasticd
# Install the default config files and directories
- install -d /app/share/meshtasticd
- install -d /app/share/meshtasticd/config.d
- install -d /app/share/meshtasticd/available.d
- cp -R bin/config.d/* /app/share/meshtasticd/available.d
- sed -i 's|/usr/share/meshtasticd|/app/share/meshtasticd|g' bin/config-dist.yaml
- install -m644 bin/config-dist.yaml /app/share/meshtasticd/config-dist.yaml
sources:
- type: git
url: https://github.com/meshtastic/firmware.git
tag: v2.5.18.89ebafc
commit: 89ebafc8b8d85ee12002b9c574f8472d99e9ec50
- type: patch
paths:
- patches/stdcppfs.patch
modules:
- python3-modules.json
- modules/yaml-cpp.yaml
- modules/libgpiod.yaml
- modules/i2c-tools.yaml
- modules/microhttpd.yaml
- modules/jansson.yaml
- modules/orcania.yaml
- modules/yder.yaml
- modules/ulfius.yaml
- shared-modules/libusb/libusb.json
- name: meshtasticd-web
buildsystem: simple
build-commands:
# All the files within the tarball are individually gzipped
- gzip -dr .
# Copy the web files to the share directory
- install -d /app/share/meshtasticd/web
- cp -r ./* /app/share/meshtasticd/web
sources:
- type: archive
url: https://github.com/meshtastic/web/releases/download/v2.5.4/build.tar
sha256: 9aded26483a8bee4e8811f33744da2016ad4bca4894f6d4cbdea79a53b0a7eaa
- name: meshtasticd-wrapper
buildsystem: simple
build-commands:
- install -Dm755 meshtasticd-wrapper.sh /app/bin/meshtasticd-wrapper.sh
sources:
- type: file
path: meshtasticd-wrapper.sh
finish-args:
# Required for CH341 USB radio
- --device=usb
# Needs to talk to the network:
- --share=network
# Persist the .portduino (var) data
# - --persist=.portduino
# Persist the meshtasticd configs
- --filesystem=xdg-config
- --filesystem=xdg-data
12 changes: 12 additions & 0 deletions patches/stdcppfs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/arch/portduino/portduino.ini b/arch/portduino/portduino.ini
index aa1150e9..26377345 100644
--- a/arch/portduino/portduino.ini
+++ b/arch/portduino/portduino.ini
@@ -35,7 +35,6 @@ build_flags =
-DRADIOLIB_EEPROM_UNSUPPORTED
-DPORTDUINO_LINUX_HARDWARE
-lpthread
- -lstdc++fs
-lbluetooth
-lgpiod
-lyaml-cpp
Loading

0 comments on commit 9738bac

Please sign in to comment.