r/zerotier•
maovidal

Buildroot package for Zerotier

Embedded (NAS / ARM / Pi / OpenWRT)

Hi everyone:

I'm trying to create a Zerotier 1.16.0 package for Buildroot 2025.08.2

This is quite tricky for me. To start I have checked the ZeroTier Build and Project Information and found that there is a Make file that takes care of the process.

Then I guess my Buildroot package can rely on calling the make-linux.mk file as Buildroot is running in a container on my Mac machine to produce the package that would be deployed in Raspberry Pis CM4/CM5. Am I correct doing so, right?

However after trying various things, I get an error during the build process:

export PATH=//root/.cargo/bin:$PATH; cd rustybits && cargo build --release -p zeroidc
/bin/sh: 1: cargo: not found
make[1]: *** [make-linux.mk:486: zeroidc] Error 127

Then a cargo infrastructure should be present. However, I don't know how to tell Buildoot to use it in this case.

Here it is my current zerotier.mk file:

################################################################################
# ZeroTier One
################################################################################

ZEROTIER_VERSION = 1.16.0
ZEROTIER_SITE = https://github.com/zerotier/ZeroTierOne/archive/refs/tags
ZEROTIER_SOURCE = $(ZEROTIER_VERSION).tar.gz
ZEROTIER_LICENSE = MPL-2.0
ZEROTIER_LICENSE_FILES = LICENSE-MPL.txt

ZEROTIER_DEPENDENCIES = openssl

define ZEROTIER_BUILD_CMDS
    $(MAKE) -C $(@D) -f make-linux.mk \
        CC="$(TARGET_CC)" \
        CXX="$(TARGET_CXX)" \
        AR="$(TARGET_AR)" \
        RANLIB="$(TARGET_RANLIB)" \
        CFLAGS="$(TARGET_CFLAGS)" \
        CXXFLAGS="$(TARGET_CXXFLAGS)" \
        LDFLAGS="$(TARGET_LDFLAGS)"
endef

define ZEROTIER_INSTALL_TARGET_CMDS
    $(INSTALL) -D -m 0755 $(@D)/zerotier-one \
        $(TARGET_DIR)/usr/sbin/zerotier-one
endef

$(eval $(generic-package))

Any help, would be greatly appreciated.

Thank you!

Posted Dec 10, 2025, 2:52 AM UTC

10
Loading comments…