Commit Graph
42 Commits
Author SHA1 Message Date
JorropoandGitHub 6111a54bcc lint: drop redundant quotes in .coderabbit.yaml (#11168)
yamllint quoted-strings (only-when-needed) flags the plain-scalar values
".*" and "bin/config.d/**", which do not require quoting.
2026-07-26 04:52:46 +00:00
JorropoandGitHub 9e529da460 replace screens with unique_ptr (#11163) 2026-07-25 11:51:13 +00:00
JorropoandGitHub f4f35bca93 lint: drop dead CKV2_GHA_1 ignore in main_matrix workflow (#11170)
The trunk-ignore no longer matches any finding (the job sets its own
permissions), so it only produced an ignore-does-nothing note.
2026-07-24 16:45:01 +00:00
JorropoandGitHub 4c17dda3e6 lint: drop dead terrascan ignore in devcontainer Dockerfile (#11167)
terrascan is not an enabled linter, so the trunk-ignore-all directive only
produced a "disabled linter" note. Remove it.
2026-07-24 08:57:16 +00:00
JorropoandGitHub ee74c3c446 lint: suppress intentional root USER in runtime Dockerfiles (#11166)
meshtasticd must run as root to reach GPIO/I2C/SPI hardware, so the final
USER root is deliberate. The existing file-level ignore used the old trivy
code (DS002); rename it to DS-0002 and add checkov/CKV_DOCKER_8 so the
last-USER-root findings are suppressed with an explicit justification.
2026-07-24 08:28:21 +00:00
JorropoandGitHub 419e8ee11f lint: fix stale trivy rule codes in clusterfuzzlite Dockerfile (#11165)
The trunk upgrade (#11140) renamed trivy's Dockerfile rules from DSxxx to
DS-xxxx, so the trunk-ignore-all directives for DS026/DS002 stopped
suppressing and the HEALTHCHECK / non-root-USER findings resurfaced.
Update the codes to DS-0026 / DS-0002, and drop the checkov/CKV_DOCKER_8,
hadolint/DL3002 and disabled terrascan ignores that no longer match any
finding.
2026-07-24 07:45:06 +00:00
JorropoandGitHub 79ade464a5 lint: clean up pr_tests workflow lint findings (#11169)
Suppress checkov/CKV_GHA_7 (the workflow_dispatch reason input is a
free-text run label that never reaches the build) and drop the redundant
quotes yamllint flags on the description/default/name scalars.
2026-07-24 07:38:18 +00:00
JorropoandGitHub cf0cb9087a Remove some deadcode (#11034)
* chore: remove empty handleWebResponse() stub in PiWebServer

* chore: remove unused PowerStatus::knowsUSB()

* chore: remove orphaned fsListFiles() declaration

* chore: remove stale #if 0 SPI-comms test in SX126xInterface

* chore: remove stale #if 0 cert-delete debug block in WebServer
2026-07-16 18:57:50 -05:00
JorropoandGitHub 545826d319 replace delete in AudioThread.h with std::unique_ptr (#9651)
Is part of the unique_ptr modernization effort.
2026-02-15 06:49:16 -06:00
JorropoandGitHub dbef1de286 workaround NCP5623 and LP5562 I2C builds (#9652)
Theses two appear to be buggy on r1-neo and nomadstar meteor pro, they rely on Wire.h being included previously to their import.

Idk why other platforms using the same smart LEDs are working while theses ones don't.

This should make CI green on the dev branch.
2026-02-15 00:32:19 +01:00
JorropoandGitHub b0bd3df226 replace delete in CryptoEngine.{cpp,h} with std::unique_ptr (#9649)
Is part of the unique_ptr modernization effort.
2026-02-14 22:44:36 +01:00
JorropoandGitHub 167bcf2863 fix typo in PIN_GPS_SWITCH (#9648)
Wasn't caught by CI.
2026-02-14 22:12:31 +01:00
JorropoandGitHub ff485d5ff8 replace delete in RadioInterface.cpp with std::unique_ptr (#9645)
Is part of the unique_ptr modernization effort.
2026-02-14 21:39:26 +01:00
JorropoandGitHub aed2c7ca9b replace delete in EInkDynamicDisplay.{cpp,h} with std::unique_ptr (#9643)
Is part of the unique_ptr modernization effort.
2026-02-14 19:56:53 +01:00
JorropoandGitHub e1f9ccd337 replace delete in RedirectablePrint.cpp with std::unique_ptr (#9642)
Is part of the unique_ptr modernization effort.
2026-02-14 19:32:16 +01:00
JorropoandGitHub df14561560 convert GPS global and some new in gps.cpp to unique_ptr (#9628)
Trying this to see if anything bad happen if I were to replace most raw pointers with unique_ptr.

I didn't used std::make_unique since it is only supported in C++14 and onwards but until we update esp32 to arduino 3.x the ESP32 xtensa chips use a C++11 std.
2026-02-14 19:12:59 +01:00
8af9e7fbdc enable long interleaving mode for LR11x0 and SX128x (#9399)
Using long interleaving is not a breaking change, the receiver node is able
to use the lora header to know if LI encoding is used or not and will
decode LI packets correctly.

However the problem is SX127x and other first generation LoRa IP which do not
support LI at all, for theses it is a breaking change.

HOWEVER due to the sync word bug the LR11x0 already can't talk with SX127x,
so if we enable LI on theses no one would be able to tell.
Same for SX128x altho this is because it works on 2.4Ghz which is incompatible with SX127x.

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2026-01-29 06:44:17 -06:00
JorropoandGitHub 4744010295 run trunk fmt -a (#9400)
* run trunk fmt -a

* fix bracket bug

This was introduced by @tedwardd and @thebentern in 021106dfe5.

See this diff:
         else
+            checkConfigPort = false;
             printf("Using config file %d\n", TCPPort);
2026-01-22 15:46:37 -06:00
JorropoandGitHub beb268ff25 Revert "add a .clang-format file (#9154)" (#9172)
I thought git would be smart enough to understand all the whitespace changes but even with all the flags I know to make it ignore theses it still blows up if there are identical changes on both sides.

I have a solution but it require creating a new commit at the merge base for each conflicting PR and merging it into develop.

I don't think blowing up all PRs is worth for now, maybe if we can coordinate this for V3 let's say.

This reverts commit 0d11331d18.
2026-01-04 05:15:53 -06:00
JorropoandGitHub 0d11331d18 add a .clang-format file (#9154) 2026-01-03 14:19:24 -06:00
JorropoandGitHub 7dd9c8b223 pass GH_TOKEN to shame's gh run download step (#9087) 2025-12-26 22:04:18 -05:00
82cf2bf16a action: skip trying to comment binary size change results if it is not a PR (#9033)
* action: skip trying to comment binary size change results if it is not a PR

* action: fix halucinations in the clanker's code

* action: cleanup one line

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Austin <vidplace7@gmail.com>
2025-12-26 17:26:48 -05:00
JorropoandGitHub 5a3855b208 in shame.py do not complain about missing targets (#9032)
PR CI only runs a small subset of all tests.

It is very likely a file we didn't found in the PR is just not tested in PR.
2025-12-21 08:11:18 -05:00
JorropoandGitHub db64a5b51e implement basic github action comment reporting target diffs (#9022)
This is missing logic:
- report average
- don't bother reporting if the results are negligeable
- praise the user if it's improving the situation
- shame the user if it's not improving the situation
2025-12-20 19:29:01 -05:00
JorropoandGitHub 987623567a router: on linux add a mutex around the queue (#6709)
UDP reception happens on an other thread, avoid data races and potential data corruption issues.
2025-05-01 06:32:20 -05:00
a7ef9e9c08 udp-multicast: remove the thread from the multicast thread API (#6685)
* udp-multicast: remove the thread from the multicast thread API

The whole API is parallel & asynchronous we don't need to start a thread ourself,
the implementation probably does when we call start listening already.

* Take copilot advice and call it a handler

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-04-30 05:52:42 -05:00
635de2d229 udp-multicast: bump platform-native to fix UDP read of unitialized memory bug (#6686)
* udp-multicast: bump platform-native to fix UDP read of unitialized memory bug

Fixes: #6683

* Update portduino.ini

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-04-29 06:31:53 -05:00
89cde1a8e6 udp-multicast: bump platform-native to UDP with error handling support (#6433)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-03-28 16:10:33 -05:00
JorropoandGitHub 6429eca5e4 udp-multicast: do not listen for incoming udp multicast packets if disabled (#6397)
Currently the config flag only control if packets are sent, not received.

As we discussed in VC this is not what was intended.
2025-03-26 18:10:56 +11:00
3afe84c4f4 linux-native: allow multiple processes to all bind to the same multicast 2tuple (#6391)
* cleanup UdpMulticastThread.h preprocessor rules a tiny bit

* bump platform-native to allow for multiple multicast listeners on the same machine

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-03-24 19:30:47 -05:00
d1068fd1e4 Add UDP multicast support on linux. (#6342)
* Add UDP multicast support on linux.

Closes #6326

We tested it an it works.

This is really hacky to say the least.

* Add libuv to Linux packaging

* Trunkadunk

* Correct ref

* Add libuv1-dev to setup-native

---------

Co-authored-by: vidplace7 <vidplace7@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-03-20 08:47:39 -05:00
f41afb14b1 raise the multicast UDP TTL limit (#6343)
Since 96ba94843b we don't spray packets to all machines on the network.

So we can allow ourself to raise the TTL limit, this allows users who run L3 IGMP Routing infrastructure to pass meshtastic frames over UDP.

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-03-20 05:41:29 -05:00
af8b64e84e pass pointer to UDP multicast packet to protobuf decoder (#6333)
The packet.readBytes API is not available on all targets:
- RP2040 & RP2340
- yet to be written portduino API

Instead pass the data buffer as-is.
It also removes a memcpy which do not need to exists.

I've tested it successfully on a tbeam.

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-03-16 19:36:33 -05:00
JorropoandGitHub 96ba94843b Send UDP packets to multicast address rather than broadcast address (#6331)
A smart router or switch is able to snoop the multicast address to
only send the packets to nodes listening on the multicast address.

Before all machines reachable on the L2 layer would receive the packet.
2025-03-16 19:36:02 -05:00
2043ad3bd0 bin: remove unused imports from readprops.py (#3907)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-08-20 06:38:16 -05:00
Jorropo d82d9f5ef1 fix dead link in EU_868 documentation
See https://discord.com/channels/867578229534359593/871553168369148024/1248026118276255745.
2024-06-05 23:32:59 +02:00
JorropoandGitHub 3719ddac03 automatically propose to setup virtualenv if platformio is having issues in native build (#3923) 2024-05-19 07:25:05 -05:00
Jorropo 04837b3302 bin: remove unused imports from platformio-custom.py 2024-05-16 02:39:42 +02:00
Jorropo 9e8ca69a11 bin: remove unused import in buildinfo.py
This was originally added in b1c30f0650 and it now do nothing since 361556a6a7 because it now use readprops.
2024-05-15 23:00:12 +02:00
Jorropo 58484d7fe5 .github: add Linux Native and other as platform to Feature Request 2024-05-11 02:10:23 +02:00
279464f96d linux-native: only install linux native deps (#3510)
This is a couple times faster because platformio checks all environment sequentially.

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-03-29 07:42:20 -05:00
3cf6c47bab replace arch with uname -m for arch linux (#3508)
From the manpage:
> arch - print machine hardware name (same as uname -m)

Arch Linux does not have the `arch` alias, only `uname`, so use `uname` to fix this issue:
> ```
> ./bin/build-native.sh: line 18: arch: command not found
> ```

Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2024-03-29 01:01:40 -05:00