75 Commits
Author SHA1 Message Date
Joachim Wiberg bc535099ec webui: initial import
Initial import of https://github.com/kernelkit/webui2 @ e344d3f

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-14 22:07:22 +02:00
Joachim Wiberg 50be4d1a43 package/initviz: new package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-20 16:18:01 +01:00
Mattias WalströmandGitHub 082bcd1712 Revert "Upgrade buildroot to 2026.02.0" 2026-03-04 19:47:11 +01:00
Mattias Walström e64d29196d Remove local package podman
It is now included in buildroot
2026-03-04 11:44:56 +01:00
Mattias Walström b446d92b0d Remove local packet lowdown
It is now included in buildroot
2026-03-04 11:44:54 +01:00
Mattias Walström e7cb85edf3 Remove local libyang-cpp and sysrepo-cpp
It has been included in buildroot
2026-03-04 09:53:03 +01:00
Mattias WalströmandJoachim Wiberg f187fee89b package: Add python-spy
You can use it to inspect python applications, to inspect
executiontime.
2026-02-24 06:59:28 +01:00
Mattias WalströmandJoachim Wiberg 8c9e36ba5d Upgrade FRR to 10.5.1
This includes adding a netd-daemon since FRR has gone towards all
daemons should be configured from mgmtd using YANG, netd uses gRPC to
reconfigure in mgmtd

Signed-off-by: Enable grpc
2026-02-24 06:59:07 +01:00
Joachim Wiberg 867239c7b8 package/feature-gps: new feature package
Enable gpsd and override package defaults to integrate in Infix.

 - Sync with rules disabled downstream in Debian project to prevent
   clashes with common vendor/device ids used for other device types
 - Start gpsd instance with '-n' to ensure /dev/shm is udpated for chrony

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-08 16:37:54 +01:00
Joachim Wiberg 9c5707d107 bin: relocate src/show.py to bin/show/ -- all tools in one place
- relocate src/show.py to src/bin/show/
 - Refactor container() to use run_sysrepo() instead of rolling its own
 - Replace sysrepocfg with copy which supports nacm
 - Rename run_sysrepocfg() -> get_json()

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-23 06:12:21 +01:00
Mattias Walström dc6abfaaae statd: Remove python-statd package
Now statd handling the rebuilding of the python libraries by using
the same script as buildroot uses for building python-packages.
2025-12-06 22:03:55 +01:00
Tobias Waldekranz 94f5463504 onieprom: Create proper package 2025-12-03 16:46:10 +01:00
Joachim Wiberg ab56c1be50 Relocate src/board/* and package/board/* to board/
This commit consolidates all BSP support files into the Buildroot standard
board/ directory.  The concept of selectable boards in menuconfig remains
as-is but now lives in board/ instead.

Drop support for board-specific post-build.sh scripts, not needed atm. and
we should really use Buildroot _POST_INSTALL_HOOKS in the board .mk files
instead.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:06 +01:00
Joachim Wiberg 3224f49b65 confd: initial zone-based firewall support, based on firewalld
Add supoprt for infix-firewall.yang, modeled on the zone-based firewalld
The terminology is a mix of firewalld, classic netfilter and inspired by
Ubiquity.  E.g., zone 'policy' -> 'action', and the zone matrix overview.

 - Port forwarding allows forwarding a range of ports
 - Operational data comes from firewalld active rules
 - Firewall logging goes to /var/log/firewall.log
 - Show implicit/built-in rules and zones (HOST) in firewall matrix,
   includes "locked" policy for the default-drop behavior
 - The zone services field in admin-exec 'show firewall' shows ANY when
   the zone default action is set to 'accept'
 - Zone 'forwarding' and 'masquerade' settings live in Infix in the
   policys instead, meaning users need to explicitly add a policy
   to allow both intra-zone and inter-zone forwarding
 - Support for emergency lockdown (kill switch)
 - Pre-defined services (xml+enums) are filtered and included as a
   separate YANG model, extensions added for netconf and restconf
 - Includes initial support for firewalld rich rules

firewalld policy rules, including rich rules, have an obnoxious priority
field which is extremely hard to get right, so in Infix we use the far
superior YANG construct 'ordered-by user;'.  This ensure all rules are
generated in that order by setting the priority field, on read-back from
firewalld (operational) the priority field is used to sort the output
of rules in the CLI.

Fixes #448

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-10 15:14:12 +02:00
Mattias Walström 0477446e49 package/bootloader-splashscreen: New packet for adding/modify bootloader splash 2025-09-07 18:06:43 +02:00
Joachim Wiberg 867ea6e92a package/execd: drop unused local package
The execd runner has not been used since Nov, 2024, ca0e54b.  This
weekend it started triggering a warning from Coverity Scan, so let
us drop it for good this time.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-08-04 07:53:46 +02:00
Mattias Walström ecabce86c7 Add meta-package for adding Wi-Fi support
Helps adding everything that needs to be compiled to get
Wi-Fi support working.

Both modules, firmware and applications are selected here
2025-06-19 15:23:26 +02:00
Richard Alpe c584af356b show: add new show tool written in python3
The reason for this is:
1) We want to use the same fetch tool for all operational data, to
   avoid having duplicated xpaths scattered across the repo.
2) We want to call this directly from the CLI, which means it need to
   be escape safe. A unprivileged user shall be able to use it but not
   escape into a shell or do other malicious stuff.

Signed-off-by: Richard Alpe <richard@bit42.se>
2025-04-07 09:06:26 +02:00
Mattias Walström 5608e9457d Move operational data about software state from confd => yanger
Statd is now responsible for operational, move last big part
(infix-system-software) to yanger.
2024-12-13 20:32:07 +01:00
Tobias Waldekranz 88f7c6070a package/board: Let the user select the set of boards to support
Introduce a new approach to dtb-building:

Old way: `rsync` an overlay containing our dt source to the kernel,
and then build via buildroot's `_INTREE_DTS_NAME`. This does not work
in recent kernels (at least since 6.12), which requires all dtb's to
be explicitly listed in a `Makefile`.

New way: Create a separate package for every board, and build the
device trees via the kernel's standard interface for building external
modules. This has two main advantages:

1. We can easily interpose a patched version of an upstream device
   tree. E.g., we can easily set the factory password.

2. It is much easier to get an overview of which boards are enabled,
   rather than scrolling back and forth in the `_INTREE_DTS_NAME` list.

Enable all fully supported boards in the defconfigs.
2024-12-04 11:27:03 +01:00
Joachim Wiberg 464e0bcb92 bin: factor out copy, erase, and files from klish-plugin-infix
Relocate C code from klish-plugin-infix to stand-alone binaries we can
use also from Bash.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-16 06:10:39 +02:00
Joachim Wiberg 60b8f97ad6 package/test-mode: rename to confd-test-mode
Declare that confd-test-mode depends on confd, otherwise with 'select',
a call to `make update-defconfig` will remove BR2_PACKAGE_CONFD=y, which
we feel is very confusing -- in particular when comparing any defconfig
that does not have test-mode package.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-11 15:02:49 +02:00
Joachim Wiberg 5cbe92f9ec package/curios-nftables: new package
Allow bundling dedicated nftables container in Infix images.  With this
container, the /etc/nftables.conf can be kept as part of the device's
startup-config (base-64 coded binary format).  Highly useful in advanced
setups, either with dedicated interfaces in the container, or when run
in host network mode.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-07 17:09:30 +02:00
Henrik NordströmandJoachim Wiberg 508ff29c71 bug: Add missing " in date-cpp package reference 2024-09-18 18:31:12 +02:00
Mattias WalströmandJoachim Wiberg f5884098fb Bump rousette to latest GIT hash
Since we are using an old GCC we need to add a new requirement for rousette 'date'
this is included in GCC 14+.
2024-09-09 17:02:51 +02:00
Mattias Walström 3c045460ef Add implementation to control test mode functions using an action
This intoduce a new sysrepo plugin to handle a new YANG
model 'infix-test'. Today only contains the actions.

This is required to run tests on infix using infamy.

This is a part of #561

Signed-off-by: Mattias Walström <lazzer@gmail.com>
2024-08-30 17:40:02 +02:00
Joachim Wiberg edaaa33ddc package/python-yangdoc: new package
To be used with automatic generation of YANG documentation extracted
from sysrepo at build time.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-28 12:54:27 +02:00
Joachim Wiberg 31a30c736a package/python-libyang: new package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-06-28 12:54:27 +02:00
Mattias Walström 4f3ae3b9a4 Add new package: Rousette - a RESTConf server 2024-06-04 13:38:03 +02:00
Joachim WibergandMattias Walström 6b8bd4caf3 package/gencert: new package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-05-03 15:33:00 +02:00
Joachim WibergandTobias Waldekranz 22c911f85e package/landing: new package
Relocate the default landing page from the rootfs overlay to a package
so that customer repos can override it.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-05-03 07:54:48 +02:00
Mattias Walström 8c9c432847 Add a new packet python-statd
Actually a part of statd, but had to make
a separarate package to get it to work.

Statd helper-scripts are now pre-compiled instead of doing it
in runtime.

Fixes #379
2024-04-16 12:47:16 +02:00
Joachim Wiberg 92d3db46a7 netbrowse: convert to gunicorn and factor out mdns-alias app
Converting to gunicorn, which is the recommended production server for
Flask apps, means app main() function is no longer called at startup, so
we have to factor out the mDNS CNAME functionality for infix.local and
network.local to a separate app.

We take this opportunity to collapse the structure, move non-class
methods to __init.py__, and rename the AvahiAlias class.  A prototype
for replacing the overhead of mdns-alias with a C daemon is in its
early stages.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-04-15 15:36:41 +02:00
Joachim Wiberg c1836af7cc package/netbrowse: new package
- Advertises the build-time $hostname.local as a CNAME to the A and
   AAAA records already advertised by Avahi
 - Advertises a special network.local CNAME and provides a fastcgi
   service on unix:/tmp/netbrowse.sock for browsing mDNS services

This commit also activates netbrowse by default with nginx listeing
to port 80 on IPv4 and IPv6 /browse by default but also / if called
with server name network.local.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-04-15 15:36:41 +02:00
Mattias Walström 6a84f334db Remove packages already inside buildroot 2024-04-09 19:38:39 +02:00
Joachim Wiberg 32635364aa package/mcd: new package, replaces querierd
Update all package references and confd:ietf-interfaces

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-03-09 11:58:40 +01:00
Joachim Wiberg 9ce763662f package/curios-httpd: new package, bundle a demo container
This is an example of how to create a package that downloads an OCI
archive and installs it to /lib/oci

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 6fa1eb9e00 package/k8s-logger: new package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 0b6f7a6b93 package/execd: new local package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Tobias WaldekranzandMattias Walström 583881c1f9 keyack: Add program to wait for key press and release
Useful for testing buttons bound to a gpio-key, e.g. a factory reset
button.
2024-02-01 14:18:14 +01:00
Joachim Wiberg 5031ff6224 net: drop unused 'net' package, replaced by dagger
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-11-17 09:49:32 +01:00
Tobias WaldekranzandJoachim Wiberg 2b7119b332 iito: Add package
Used to control LEDs based on system state.
2023-11-14 16:41:03 +01:00
Henrik NordstromandJoachim Wiberg 5eb25e968b Add greenpak-programmer package 2023-10-16 15:07:03 +02:00
Joachim WibergandTobias Waldekranz a38e5582ac Refactor, break out a libsrx from confd, shared with statd
Everything (!) potentially shared with other sysrepo plugins/daemons and
helper functions (not yet in libite) that can be used by other daemons
have been relocated to libsrx.

Fix #116

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 83e5af33ff Fix #86: rename klinfix -> klish-plugin-infix
Also renames all klix_SYM@klinfix to SYM@infix, this is fine since we're
always calling these symbols with @infix.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-14 13:00:09 +02:00
Joachim WibergandTobias Waldekranz 52301db8bd package/lowdown: new package, markdown pretty-printer for terminals
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-08 16:35:18 +02:00
Richard AlpeandJoachim Wiberg b3213c6228 statd: break out operational status into new daemon
This patch does two main things:
1) Breaks "statd" free from "confd".
2) Introduces netlink monitoring of interfaces for sysrepo data.

Prior to this patch, sysrepo operation status was handled by code
named "statd" inside "confd". (Where confd is a sysrepo-plugin and
not a real daemon, which its name implies)

In this patch, we break out the interface part of the operational
sysrepo status, previously "statd", into a new daemon, also called
"statd".

The main reason for doing this is to avoid sysrepo threading, which
allows the new "statd" to have control over sysrepo events in the
same event pool as netlink events from the kernel. This in turn allows
statd to subscribe and unsubscribe dynamically to interfaces that
comes and goes during runtime (such as vlans).

It also makes sense that "statd" is in fact a finit daemon.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-07-04 17:43:16 +02:00
Joachim WibergandRichard Alpe de24d0389a package: relocate PROFINET packages to customer repo.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-07-03 13:51:30 +02:00
Joachim WibergandTobias Waldekranz 65d170985c package/podman: new package
Podman (POD manager) is an open source tool for developing, managing,
and running containers on your Linux systems.

Based on work by Christian Stewart and Nathaniel Husted.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-05-21 20:39:12 +02:00
Joachim WibergandTobias Waldekranz 1624c88708 package/conmon: new package
Conmon is an OCI container runtime monitor.  It sits between container
runtimes, e.g., crun and runc, and userland managers, e.g., podman.

Based on work by Christian Stewart and Nathaniel Husted.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-05-21 20:39:12 +02:00