mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-20 16:56:17 +00:00
Compare commits
9 Commits
f700a7be0e
...
e1b7c9bf6c
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e1b7c9bf6c | ||
![]() |
d70a9392af | ||
![]() |
4e8c4f0d55 | ||
![]() |
4a6a0efcfd | ||
![]() |
cb0519dd9c | ||
![]() |
9db51a72a4 | ||
![]() |
64def246ee | ||
![]() |
1c8eb7ece3 | ||
![]() |
447533aae5 |
38
.github/workflows/build_native.yml
vendored
38
.github/workflows/build_native.yml
vendored
@ -1,38 +0,0 @@
|
|||||||
name: Build Native
|
|
||||||
|
|
||||||
on: workflow_call
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-native:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Setup native build
|
|
||||||
id: base
|
|
||||||
uses: ./.github/actions/setup-native
|
|
||||||
|
|
||||||
- name: Build Native
|
|
||||||
run: bin/build-native.sh
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Store binaries as an artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-native-${{ steps.version.outputs.long }}.zip
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
release/meshtasticd_linux_x86_64
|
|
||||||
bin/config-dist.yaml
|
|
52
.github/workflows/build_raspbian.yml
vendored
52
.github/workflows/build_raspbian.yml
vendored
@ -1,52 +0,0 @@
|
|||||||
name: Build Raspbian
|
|
||||||
|
|
||||||
on: workflow_call
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-raspbian:
|
|
||||||
runs-on: [self-hosted, linux, ARM64]
|
|
||||||
steps:
|
|
||||||
- name: Install libbluetooth
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
sudo apt-get update -y --fix-missing
|
|
||||||
sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Upgrade python tools
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install -U platformio adafruit-nrfutil
|
|
||||||
pip install -U meshtastic --pre
|
|
||||||
|
|
||||||
- name: Upgrade platformio
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
pio upgrade
|
|
||||||
|
|
||||||
- name: Build Raspbian
|
|
||||||
run: bin/build-native.sh
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Store binaries as an artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-raspbian-${{ steps.version.outputs.long }}.zip
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
release/meshtasticd_linux_aarch64
|
|
||||||
bin/config-dist.yaml
|
|
52
.github/workflows/build_raspbian_armv7l.yml
vendored
52
.github/workflows/build_raspbian_armv7l.yml
vendored
@ -1,52 +0,0 @@
|
|||||||
name: Build Raspbian Arm
|
|
||||||
|
|
||||||
on: workflow_call
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-raspbian-armv7l:
|
|
||||||
runs-on: [self-hosted, linux, ARM]
|
|
||||||
steps:
|
|
||||||
- name: Install libbluetooth
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
sudo apt-get update -y --fix-missing
|
|
||||||
sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Upgrade python tools
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install -U platformio adafruit-nrfutil
|
|
||||||
pip install -U meshtastic --pre
|
|
||||||
|
|
||||||
- name: Upgrade platformio
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
pio upgrade
|
|
||||||
|
|
||||||
- name: Build Raspbian
|
|
||||||
run: bin/build-native.sh
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Store binaries as an artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-raspbian-armv7l-${{ steps.version.outputs.long }}.zip
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
release/meshtasticd_linux_armv7l
|
|
||||||
bin/config-dist.yaml
|
|
32
.github/workflows/main_matrix.yml
vendored
32
.github/workflows/main_matrix.yml
vendored
@ -128,15 +128,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
board: ${{ matrix.board }}
|
board: ${{ matrix.board }}
|
||||||
|
|
||||||
package-raspbian:
|
|
||||||
uses: ./.github/workflows/package_raspbian.yml
|
|
||||||
|
|
||||||
package-raspbian-armv7l:
|
|
||||||
uses: ./.github/workflows/package_raspbian_armv7l.yml
|
|
||||||
|
|
||||||
package-native:
|
|
||||||
uses: ./.github/workflows/package_amd64.yml
|
|
||||||
|
|
||||||
build-debian-src:
|
build-debian-src:
|
||||||
uses: ./.github/workflows/build_debian_src.yml
|
uses: ./.github/workflows/build_debian_src.yml
|
||||||
with:
|
with:
|
||||||
@ -158,7 +149,7 @@ jobs:
|
|||||||
docker-alpine-amd64:
|
docker-alpine-amd64:
|
||||||
uses: ./.github/workflows/docker_build.yml
|
uses: ./.github/workflows/docker_build.yml
|
||||||
with:
|
with:
|
||||||
distro: debian
|
distro: alpine
|
||||||
platform: linux/amd64
|
platform: linux/amd64
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
push: false
|
push: false
|
||||||
@ -288,14 +279,7 @@ jobs:
|
|||||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||||
outputs:
|
outputs:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
needs:
|
needs: [gather-artifacts, build-debian-src]
|
||||||
[
|
|
||||||
gather-artifacts,
|
|
||||||
package-raspbian,
|
|
||||||
package-raspbian-armv7l,
|
|
||||||
package-native,
|
|
||||||
build-debian-src,
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@ -324,13 +308,6 @@ jobs:
|
|||||||
body: |
|
body: |
|
||||||
Autogenerated by github action, developer should edit as required before publishing...
|
Autogenerated by github action, developer should edit as required before publishing...
|
||||||
|
|
||||||
- name: Download deb files
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: meshtasticd_${{ steps.version.outputs.long }}_*.deb
|
|
||||||
merge-multiple: true
|
|
||||||
path: ./output
|
|
||||||
|
|
||||||
- name: Download source deb
|
- name: Download source deb
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
@ -346,11 +323,8 @@ jobs:
|
|||||||
- name: Display structure of downloaded files
|
- name: Display structure of downloaded files
|
||||||
run: ls -lR
|
run: ls -lR
|
||||||
|
|
||||||
- name: Add deb files to release
|
- name: Add source deb to release
|
||||||
run: |
|
run: |
|
||||||
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd_${{ steps.version.outputs.long }}_arm64.deb
|
|
||||||
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd_${{ steps.version.outputs.long }}_armhf.deb
|
|
||||||
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd_${{ steps.version.outputs.long }}_amd64.deb
|
|
||||||
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd-${{ steps.version.outputs.deb }}-src.zip
|
gh release upload v${{ steps.version.outputs.long }} ./output/meshtasticd-${{ steps.version.outputs.deb }}-src.zip
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
90
.github/workflows/package_amd64.yml
vendored
90
.github/workflows/package_amd64.yml
vendored
@ -1,90 +0,0 @@
|
|||||||
name: Package Native
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-native:
|
|
||||||
uses: ./.github/workflows/build_native.yml
|
|
||||||
|
|
||||||
package-native:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: build-native
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Pull web ui
|
|
||||||
uses: dsaltares/fetch-gh-release-asset@master
|
|
||||||
with:
|
|
||||||
repo: meshtastic/web
|
|
||||||
file: build.tar
|
|
||||||
target: build.tar
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Download artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-native-${{ steps.version.outputs.long }}.zip
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Display structure of downloaded files
|
|
||||||
run: ls -R
|
|
||||||
|
|
||||||
- name: build .debpkg
|
|
||||||
run: |
|
|
||||||
mkdir -p .debpkg/DEBIAN
|
|
||||||
mkdir -p .debpkg/usr/share/meshtasticd/web
|
|
||||||
mkdir -p .debpkg/usr/sbin
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
|
||||||
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
|
||||||
shopt -s dotglob nullglob
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
|
||||||
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
|
||||||
cp release/meshtasticd_linux_x86_64 .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
|
||||||
chmod +x .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
|
||||||
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
|
||||||
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
|
||||||
chmod +x .debpkg/DEBIAN/preinst
|
|
||||||
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
|
||||||
chmod +x .debpkg/DEBIAN/postinst
|
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
|
||||||
with:
|
|
||||||
package: meshtasticd
|
|
||||||
package_root: .debpkg
|
|
||||||
maintainer: Jonathan Bennett
|
|
||||||
version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
|
|
||||||
arch: amd64
|
|
||||||
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
|
|
||||||
desc: Native Linux Meshtastic binary.
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: meshtasticd_${{ steps.version.outputs.long }}_amd64.deb
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
./*.deb
|
|
90
.github/workflows/package_raspbian.yml
vendored
90
.github/workflows/package_raspbian.yml
vendored
@ -1,90 +0,0 @@
|
|||||||
name: Package Raspbian
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-raspbian:
|
|
||||||
uses: ./.github/workflows/build_raspbian.yml
|
|
||||||
|
|
||||||
package-raspbian:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: build-raspbian
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Pull web ui
|
|
||||||
uses: dsaltares/fetch-gh-release-asset@master
|
|
||||||
with:
|
|
||||||
repo: meshtastic/web
|
|
||||||
file: build.tar
|
|
||||||
target: build.tar
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Download artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-raspbian-${{ steps.version.outputs.long }}.zip
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Display structure of downloaded files
|
|
||||||
run: ls -R
|
|
||||||
|
|
||||||
- name: build .debpkg
|
|
||||||
run: |
|
|
||||||
mkdir -p .debpkg/DEBIAN
|
|
||||||
mkdir -p .debpkg/usr/share/meshtasticd/web
|
|
||||||
mkdir -p .debpkg/usr/sbin
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
|
||||||
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
|
||||||
shopt -s dotglob nullglob
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
|
||||||
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
|
||||||
cp release/meshtasticd_linux_aarch64 .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
|
||||||
chmod +x .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
|
||||||
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
|
||||||
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
|
||||||
chmod +x .debpkg/DEBIAN/preinst
|
|
||||||
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
|
||||||
chmod +x .debpkg/DEBIAN/postinst
|
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
|
||||||
with:
|
|
||||||
package: meshtasticd
|
|
||||||
package_root: .debpkg
|
|
||||||
maintainer: Jonathan Bennett
|
|
||||||
version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
|
|
||||||
arch: arm64
|
|
||||||
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
|
|
||||||
desc: Native Linux Meshtastic binary.
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: meshtasticd_${{ steps.version.outputs.long }}_arm64.deb
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
./*.deb
|
|
90
.github/workflows/package_raspbian_armv7l.yml
vendored
90
.github/workflows/package_raspbian_armv7l.yml
vendored
@ -1,90 +0,0 @@
|
|||||||
name: Package Raspbian
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-raspbian_armv7l:
|
|
||||||
uses: ./.github/workflows/build_raspbian_armv7l.yml
|
|
||||||
|
|
||||||
package-raspbian_armv7l:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: build-raspbian_armv7l
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
ref: ${{github.event.pull_request.head.ref}}
|
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
|
||||||
|
|
||||||
- name: Pull web ui
|
|
||||||
uses: dsaltares/fetch-gh-release-asset@master
|
|
||||||
with:
|
|
||||||
repo: meshtastic/web
|
|
||||||
file: build.tar
|
|
||||||
target: build.tar
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Get release version string
|
|
||||||
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
||||||
id: version
|
|
||||||
|
|
||||||
- name: Download artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-raspbian-armv7l-${{ steps.version.outputs.long }}.zip
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Display structure of downloaded files
|
|
||||||
run: ls -R
|
|
||||||
|
|
||||||
- name: build .debpkg
|
|
||||||
run: |
|
|
||||||
mkdir -p .debpkg/DEBIAN
|
|
||||||
mkdir -p .debpkg/usr/share/meshtasticd/web
|
|
||||||
mkdir -p .debpkg/usr/sbin
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
|
||||||
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
|
||||||
shopt -s dotglob nullglob
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
|
||||||
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
|
||||||
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
|
||||||
cp release/meshtasticd_linux_armv7l .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
|
||||||
chmod +x .debpkg/usr/sbin/meshtasticd
|
|
||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
|
||||||
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
|
||||||
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
|
||||||
chmod +x .debpkg/DEBIAN/preinst
|
|
||||||
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
|
||||||
chmod +x .debpkg/DEBIAN/postinst
|
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
|
||||||
with:
|
|
||||||
package: meshtasticd
|
|
||||||
package_root: .debpkg
|
|
||||||
maintainer: Jonathan Bennett
|
|
||||||
version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
|
|
||||||
arch: armhf
|
|
||||||
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
|
|
||||||
desc: Native Linux Meshtastic binary.
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: meshtasticd_${{ steps.version.outputs.long }}_armhf.deb
|
|
||||||
overwrite: true
|
|
||||||
path: |
|
|
||||||
./*.deb
|
|
12
.github/workflows/release_channels.yml
vendored
12
.github/workflows/release_channels.yml
vendored
@ -37,9 +37,9 @@ jobs:
|
|||||||
${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
|
${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
# hook-copr:
|
hook-copr:
|
||||||
# uses: ./.github/workflows/hook_copr.yml
|
uses: ./.github/workflows/hook_copr.yml
|
||||||
# with:
|
with:
|
||||||
# copr_project: |-
|
copr_project: |-
|
||||||
# ${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
|
${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
|
||||||
# secrets: inherit
|
secrets: inherit
|
||||||
|
5
debian/changelog
vendored
5
debian/changelog
vendored
@ -1,8 +1,9 @@
|
|||||||
meshtasticd (2.5.21.0) UNRELEASED; urgency=medium
|
meshtasticd (2.5.22.0) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
* Initial packaging
|
* Initial packaging
|
||||||
* GitHub Actions Automatic version bump
|
* GitHub Actions Automatic version bump
|
||||||
* GitHub Actions Automatic version bump
|
* GitHub Actions Automatic version bump
|
||||||
* GitHub Actions Automatic version bump
|
* GitHub Actions Automatic version bump
|
||||||
|
* GitHub Actions Automatic version bump
|
||||||
|
|
||||||
-- Austin Lane <github-actions[bot]@users.noreply.github.com> Sat, 25 Jan 2025 01:39:16 +0000
|
-- Austin Lane <github-actions[bot]@users.noreply.github.com> Wed, 05 Feb 2025 01:10:33 +0000
|
||||||
|
2
debian/ci_pack_sdeb.sh
vendored
2
debian/ci_pack_sdeb.sh
vendored
@ -11,7 +11,7 @@ platformio pkg install -e native -t platformio/tool-scons@4.40502.0
|
|||||||
tar -cf pio.tar pio/
|
tar -cf pio.tar pio/
|
||||||
rm -rf pio
|
rm -rf pio
|
||||||
# Download the latest meshtastic/web release build.tar to `web.tar`
|
# Download the latest meshtastic/web release build.tar to `web.tar`
|
||||||
curl -L https://github.com/meshtastic/web/releases/download/latest/build.tar -o web.tar
|
curl -L https://github.com/meshtastic/web/releases/latest/download/build.tar -o web.tar
|
||||||
|
|
||||||
package=$(dpkg-parsechangelog --show-field Source)
|
package=$(dpkg-parsechangelog --show-field Source)
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Summary: Meshtastic daemon for communicating with Meshtastic devices
|
|||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://github.com/meshtastic/firmware
|
URL: https://github.com/meshtastic/firmware
|
||||||
Source0: {{{ git_dir_pack }}}
|
Source0: {{{ git_dir_pack }}}
|
||||||
Source1: https://github.com/meshtastic/web/releases/download/latest/build.tar
|
Source1: https://github.com/meshtastic/web/releases/latest/download/build.tar
|
||||||
|
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
|
@ -449,7 +449,22 @@ bool GPS::setup()
|
|||||||
if (!didSerialInit) {
|
if (!didSerialInit) {
|
||||||
int msglen = 0;
|
int msglen = 0;
|
||||||
if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) {
|
if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) {
|
||||||
|
#ifdef TRACKER_T1000_E
|
||||||
|
// add power up/down strategy, improve ag3335 detection success
|
||||||
|
digitalWrite(PIN_GPS_EN, LOW);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(GPS_VRTC_EN, LOW);
|
||||||
|
delay(1000);
|
||||||
|
digitalWrite(GPS_VRTC_EN, HIGH);
|
||||||
|
delay(500);
|
||||||
|
digitalWrite(PIN_GPS_EN, HIGH);
|
||||||
|
delay(1000);
|
||||||
|
#endif
|
||||||
|
#ifdef TRACKER_T1000_E
|
||||||
|
if (probeTries < 5) {
|
||||||
|
#else
|
||||||
if (probeTries < 2) {
|
if (probeTries < 2) {
|
||||||
|
#endif
|
||||||
LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]);
|
LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]);
|
||||||
gnssModel = probe(serialSpeeds[speedSelect]);
|
gnssModel = probe(serialSpeeds[speedSelect]);
|
||||||
if (gnssModel == GNSS_MODEL_UNKNOWN) {
|
if (gnssModel == GNSS_MODEL_UNKNOWN) {
|
||||||
@ -460,7 +475,11 @@ bool GPS::setup()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Rare Serial Speeds
|
// Rare Serial Speeds
|
||||||
|
#ifdef TRACKER_T1000_E
|
||||||
|
if (probeTries == 5) {
|
||||||
|
#else
|
||||||
if (probeTries == 2) {
|
if (probeTries == 2) {
|
||||||
|
#endif
|
||||||
LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]);
|
LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]);
|
||||||
gnssModel = probe(rareSerialSpeeds[speedSelect]);
|
gnssModel = probe(rareSerialSpeeds[speedSelect]);
|
||||||
if (gnssModel == GNSS_MODEL_UNKNOWN) {
|
if (gnssModel == GNSS_MODEL_UNKNOWN) {
|
||||||
@ -772,6 +791,9 @@ void GPS::setPowerState(GPSPowerState newState, uint32_t sleepTime)
|
|||||||
setPowerPMU(true); // Power (PMU): on
|
setPowerPMU(true); // Power (PMU): on
|
||||||
writePinStandby(false); // Standby (pin): awake (not standby)
|
writePinStandby(false); // Standby (pin): awake (not standby)
|
||||||
setPowerUBLOX(true); // Standby (UBLOX): awake
|
setPowerUBLOX(true); // Standby (UBLOX): awake
|
||||||
|
#ifdef GNSS_AIROHA
|
||||||
|
lastFixStartMsec = 0;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GPS_SOFTSLEEP:
|
case GPS_SOFTSLEEP:
|
||||||
|
@ -74,7 +74,7 @@ bool CryptoEngine::encryptCurve25519(uint32_t toNode, uint32_t fromNode, meshtas
|
|||||||
auth = bytesOut + numBytes;
|
auth = bytesOut + numBytes;
|
||||||
memcpy((uint8_t *)(auth + 8), &extraNonceTmp,
|
memcpy((uint8_t *)(auth + 8), &extraNonceTmp,
|
||||||
sizeof(uint32_t)); // do not use dereference on potential non aligned pointers : *extraNonce = extraNonceTmp;
|
sizeof(uint32_t)); // do not use dereference on potential non aligned pointers : *extraNonce = extraNonceTmp;
|
||||||
LOG_INFO("Random nonce value: %d", extraNonceTmp);
|
LOG_DEBUG("Random nonce value: %d", extraNonceTmp);
|
||||||
if (remotePublic.size == 0) {
|
if (remotePublic.size == 0) {
|
||||||
LOG_DEBUG("Node %d or their public_key not found", toNode);
|
LOG_DEBUG("Node %d or their public_key not found", toNode);
|
||||||
return false;
|
return false;
|
||||||
|
@ -407,7 +407,7 @@ bool NodeDB::resetRadioConfig(bool factory_reset)
|
|||||||
rebootAtMsec = millis() + (5 * 1000);
|
rebootAtMsec = millis() + (5 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3)) && defined(HAS_TFT)
|
#if (defined(T_DECK) || defined(T_WATCH_S3) || defined(UNPHONE) || defined(PICOMPUTER_S3)) && HAS_TFT
|
||||||
// as long as PhoneAPI shares BT and TFT app switch BT off
|
// as long as PhoneAPI shares BT and TFT app switch BT off
|
||||||
config.bluetooth.enabled = false;
|
config.bluetooth.enabled = false;
|
||||||
if (moduleConfig.external_notification.nag_timeout == 60)
|
if (moduleConfig.external_notification.nag_timeout == 60)
|
||||||
|
@ -850,18 +850,26 @@ std::string JSONValue::StringifyString(const std::string &str)
|
|||||||
str_out += "\\r";
|
str_out += "\\r";
|
||||||
} else if (chr == '\t') {
|
} else if (chr == '\t') {
|
||||||
str_out += "\\t";
|
str_out += "\\t";
|
||||||
} else if (chr < ' ' || chr > 126) {
|
} else if (chr < 0x20 || chr == 0x7F) {
|
||||||
str_out += "\\u";
|
char buf[7];
|
||||||
for (int i = 0; i < 4; i++) {
|
snprintf(buf, sizeof(buf), "\\u%04x", chr);
|
||||||
int value = (chr >> 12) & 0xf;
|
str_out += buf;
|
||||||
if (value >= 0 && value <= 9)
|
} else if (chr < 0x80) {
|
||||||
str_out += (char)('0' + value);
|
str_out += chr;
|
||||||
else if (value >= 10 && value <= 15)
|
|
||||||
str_out += (char)('A' + (value - 10));
|
|
||||||
chr <<= 4;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
str_out += chr;
|
str_out += chr;
|
||||||
|
size_t remain = str.end() - iter - 1;
|
||||||
|
if ((chr & 0xE0) == 0xC0 && remain >= 1) {
|
||||||
|
++iter;
|
||||||
|
str_out += *iter;
|
||||||
|
} else if ((chr & 0xF0) == 0xE0 && remain >= 2) {
|
||||||
|
str_out += *(++iter);
|
||||||
|
str_out += *(++iter);
|
||||||
|
} else if ((chr & 0xF8) == 0xF0 && remain >= 3) {
|
||||||
|
str_out += *(++iter);
|
||||||
|
str_out += *(++iter);
|
||||||
|
str_out += *(++iter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
++iter;
|
++iter;
|
||||||
|
@ -31,7 +31,7 @@ Also worth noting that the Seeed WIO SX1262 in particular only has RXEN exposed
|
|||||||
| NiceRF | Lora1262 | yes | Int | |
|
| NiceRF | Lora1262 | yes | Int | |
|
||||||
| Waveshare | Core1262-HF | yes | Ext | |
|
| Waveshare | Core1262-HF | yes | Ext | |
|
||||||
| Waveshare | LoRa Node Module | yes | Int | |
|
| Waveshare | LoRa Node Module | yes | Int | |
|
||||||
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! |
|
| Seeed | Wio-SX1262 | yes | Ext | Cute! DIO2/TXEN are not exposed |
|
||||||
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
||||||
| RF Solutions | RFM95 | No | Int | Untested |
|
| RF Solutions | RFM95 | No | Int | Untested |
|
||||||
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |
|
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |
|
||||||
|
@ -22,26 +22,26 @@ extern "C" {
|
|||||||
/*
|
/*
|
||||||
NRF52 PRO MICRO PIN ASSIGNMENT
|
NRF52 PRO MICRO PIN ASSIGNMENT
|
||||||
|
|
||||||
| Pin | Function | | Pin | Function | RF95 |
|
| Pin | Function | | Pin | Function | RF95 |
|
||||||
| ----- | ----------- | --- | -------- | ------------ | ----- |
|
| ----- | ----------- | --- | -------- | ------------ | ----- |
|
||||||
| Gnd | | | vbat | | |
|
| Gnd | | | vbat | | |
|
||||||
| P0.06 | Serial2 RX | | vbat | | |
|
| P0.06 | Serial2 RX | | vbat | | |
|
||||||
| P0.08 | Serial2 TX | | Gnd | | |
|
| P0.08 | Serial2 TX | | Gnd | | |
|
||||||
| Gnd | | | reset | | |
|
| Gnd | | | reset | | |
|
||||||
| Gnd | | | ext_vcc | *see 0.13 | |
|
| Gnd | | | ext_vcc | *see 0.13 | |
|
||||||
| P0.17 | RXEN | | P0.31 | BATTERY_PIN | |
|
| P0.17 | RXEN | | P0.31 | BATTERY_PIN | |
|
||||||
| P0.20 | GPS_RX | | P0.29 | BUSY | DIO0 |
|
| P0.20 | GPS_RX | | P0.29 | BUSY | DIO0 |
|
||||||
| P0.22 | GPS_TX | | P0.02 | MISO | MISO |
|
| P0.22 | GPS_TX | | P0.02 | MISO | MISO |
|
||||||
| P0.24 | GPS_EN | | P1.15 | MOSI | MOSI |
|
| P0.24 | GPS_EN | | P1.15 | MOSI | MOSI |
|
||||||
| P1.00 | BUTTON_PIN | | P1.13 | CS | CS |
|
| P1.00 | BUTTON_PIN | | P1.13 | CS | CS |
|
||||||
| P0.11 | SCL | | P1.11 | SCK | SCK |
|
| P0.11 | SCL | | P1.11 | SCK | SCK |
|
||||||
| P1.04 | SDA | | P0.10 | DIO1/IRQ | DIO1 |
|
| P1.04 | SDA | | P0.10 | DIO1/IRQ | DIO1 |
|
||||||
| P1.06 | Free pin | | P0.09 | RESET | RST |
|
| P1.06 | Free pin | | P0.09 | RESET | RST |
|
||||||
| | | | | | |
|
| | | | | | |
|
||||||
| | Mid board | | | Internal | |
|
| | Mid board | | | Internal | |
|
||||||
| P1.01 | Free pin | | 0.15 | LED | |
|
| P1.01 | Free pin | | 0.15 | LED | |
|
||||||
| P1.02 | Free pin | | 0.13 | 3V3_EN | |
|
| P1.02 | Free pin | | 0.13 | 3V3_EN | |
|
||||||
| P1.07 | Free pin | | | | |
|
| P1.07 | Free pin | | | | |
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Number of pins defined in PinDescription array
|
// Number of pins defined in PinDescription array
|
||||||
@ -175,7 +175,7 @@ settings.
|
|||||||
| NiceRF | Lora1262 | yes | Int | |
|
| NiceRF | Lora1262 | yes | Int | |
|
||||||
| Waveshare | Core1262-HF | yes | Ext | |
|
| Waveshare | Core1262-HF | yes | Ext | |
|
||||||
| Waveshare | LoRa Node Module | yes | Int | |
|
| Waveshare | LoRa Node Module | yes | Int | |
|
||||||
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! |
|
| Seeed | Wio-SX1262 | yes | Ext | Cute! DIO2/TXEN are not exposed |
|
||||||
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
||||||
| RF Solutions | RFM95 | No | Int | Untested |
|
| RF Solutions | RFM95 | No | Int | Untested |
|
||||||
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |
|
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |
|
||||||
|
@ -55,7 +55,7 @@ extern "C" {
|
|||||||
#define BUTTON_PIN (0 + 6) // P0.06
|
#define BUTTON_PIN (0 + 6) // P0.06
|
||||||
#define BUTTON_ACTIVE_LOW false
|
#define BUTTON_ACTIVE_LOW false
|
||||||
#define BUTTON_ACTIVE_PULLUP false
|
#define BUTTON_ACTIVE_PULLUP false
|
||||||
#define BUTTON_SENSE_TYPE 0x6
|
#define BUTTON_SENSE_TYPE 0x5 // enable input pull-down
|
||||||
|
|
||||||
#define HAS_WIRE 1
|
#define HAS_WIRE 1
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[VERSION]
|
[VERSION]
|
||||||
major = 2
|
major = 2
|
||||||
minor = 5
|
minor = 5
|
||||||
build = 21
|
build = 22
|
||||||
|
Loading…
Reference in New Issue
Block a user