tayga: upgrade 0.9.2 -> 0.9.6

- Update SRC_URI as upstream moved to GitHub
- Upstream now builds via Makefile and no longer ships a configure script
- Refresh LICENSE file path and checksum
- Install template systemd service and conf provided by upstream
- Drop patch which is merged in the upstream version
- Recommend kernel-module-tun since /dev/net/tun is required at runtime
Fixes:

root@qemuarm64:~# systemctl status tayga@default.service
x tayga@default.service - Simple, no-fuss NAT64
     Loaded: loaded (/usr/lib/systemd/system/tayga@.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Tue 2026-08-18 03:16:11 UTC; 12s ago
 Invocation: a950b39a22a141baaa88e5c919a59009
    Process: 300 ExecStart=tayga --config /etc/tayga/default.conf --journal --nodetach (code=exited, status=1/FAILURE)
   Main PID: 300 (code=exited, status=1/FAILURE)
   Mem peak: 1.7M
        CPU: 190ms

Aug 18 03:16:11 qemuarm64 systemd[1]: Starting Simple, no-fuss NAT64...
Aug 18 03:16:11 qemuarm64 tayga[300]: Starting TAYGA 0.9.6
Aug 18 03:16:11 qemuarm64 tayga[300]: Compiled from tags/0.9.6
Aug 18 03:16:11 qemuarm64 tayga[300]: Commit 7f00122b75d808f696df0efe481a8c8919ba9bd7
Aug 18 03:16:11 qemuarm64 tayga[300]: Unable to open /dev/net/tun, aborting: No such file or directory
Aug 18 03:16:11 qemuarm64 systemd[1]: tayga@default.service: Main process exited, code=exited, status=1/FAILURE
Aug 18 03:16:11 qemuarm64 systemd[1]: tayga@default.service: Failed with result 'exit-code'.
Aug 18 03:16:11 qemuarm64 systemd[1]: Failed to start Simple, no-fuss NAT64.

- Add UPSTREAM_CHECK_GITTAGREGEX for git tag version checks

Fixes:
$ devtool latest-version tayga
...
INFO: Current version: 0.9.2
INFO: Latest version:

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Ankur Tyagi
2026-08-18 17:01:08 +12:00
committed by Khem Raj
parent d7f822ccbd
commit 140fcd6052
5 changed files with 39 additions and 157 deletions
@@ -1,18 +0,0 @@
This patch addresses the following clang failure: tayga-0.9.2/nat64.c:119:6:
error: call to undeclared function 'writev'; ISO C99 and later do not support
implicit function declarations [-Wimplicit-function-declaration]
Upstream-Status: Pending
Signed-off-by: Pawel Langowski <pawel.langowski@3mdeb.com>
--- tayga.h 2023-09-29 14:38:05.005837695 +0200
+++ tayga-2.h 2023-09-29 14:37:45.560837257 +0200
@@ -20,6 +20,7 @@
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
+#include <sys/uio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
@@ -1,103 +0,0 @@
#
# Sample configuration file for TAYGA 0.9.2
#
# Modify this to use your own addresses!!
#
#
# TUN device that TAYGA will use to exchange IPv4 and IPv6 packets with the
# kernel. You may use any name you like, but `nat64' is recommended.
#
# This device may be created before starting the tayga daemon by running
# `tayga --mktun`. This allows routing and firewall rules to be set up prior
# to commencement of packet translation.
#
# Mandatory.
#
tun-device nat64
#
# TAYGA's IPv4 address. This is NOT your router's IPv4 address! TAYGA
# requires its own address because it acts as an IPv4 and IPv6 router, and
# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
# echo requests (ping) at this address.
#
# This address can safely be located inside the dynamic-pool prefix.
#
# Mandatory.
#
ipv4-addr 192.168.254.1
#
# TAYGA's IPv6 address. This is NOT your router's IPv6 address! TAYGA
# requires its own address because it acts as an IPv4 and IPv6 router, and
# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
# echo requests (ping6) at this address.
#
# You can leave ipv6-addr unspecified and TAYGA will construct its IPv6
# address using ipv4-addr and the NAT64 prefix.
#
# Optional if the NAT64 prefix is specified, otherwise mandatory. It is also
# mandatory if the NAT64 prefix is 64:ff9b::/96 and ipv4-addr is a private
# (RFC1918) address.
#
#ipv6-addr 2001:db8:1::2
ipv6-addr fdaa:bb:1::1
#
# The NAT64 prefix. The IPv4 address space is mapped into the IPv6 address
# space by prepending this prefix to the IPv4 address. Using a /96 prefix is
# recommended in most situations, but all lengths specified in RFC 6052 are
# supported.
#
# This must be a prefix selected from your organization's IPv6 address space
# or the Well-Known Prefix 64:ff9b::/96. Note that using the Well-Known
# Prefix will prohibit IPv6 hosts from contacting IPv4 hosts that have private
# (RFC1918) addresses, per RFC 6052.
#
# The NAT64 prefix need not be specified if all required address mappings are
# listed in `map' directives. (See below.)
#
# Optional.
#
##prefix 2001:db8:1:ffff::/96
prefix 64:ff9b::/96
#
# Dynamic pool prefix. IPv6 hosts which send traffic through TAYGA (and do
# not correspond to a static map or an IPv4-translatable address in the NAT64
# prefix) will be assigned an IPv4 address from the dynamic pool. Dynamic
# maps are valid for 124 minutes after the last matching packet is seen.
#
# If no unassigned addresses remain in the dynamic pool (or no dynamic pool is
# configured), packets from unknown IPv6 hosts will be rejected with an ICMP
# unreachable error.
#
# Optional.
#
dynamic-pool 192.168.254.0/24
#
# Persistent data storage directory. The dynamic.map file, which saves the
# dynamic maps that are created from dynamic-pool, is stored in this
# directory. Omit if you do not need these maps to be persistent between
# instances of TAYGA.
#
# Optional.
#
data-dir /var/spool/tayga
#
# Establishes a single-host map. If an IPv6 host should be consistently
# reachable at a specific IPv4 address, the mapping can be specified in a
# `map' directive. (IPv6 hosts numbered with an IPv4-translatable address do
# not need map directives.)
#
# IPv4 addresses specified in the `map' directive can safely be located inside
# the dynamic-pool prefix.
#
# Optional.
#
#map 192.168.5.42 2001:db8:1:4444::1
#map 192.168.5.43 2001:db8:1:4444::2
#map 192.168.255.2 2001:db8:1:569::143
@@ -1,12 +0,0 @@
[Unit]
SourcePath=/usr/sbin/tayga
Description=LSB: userspace NAT64
[Service]
Type=forking
ExecStart=/usr/sbin/tayga -d --config /etc/tayga.conf
RemainAfterExit=yes
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.target
@@ -1,24 +0,0 @@
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = " \
http://www.litech.org/tayga/tayga-${PV}.tar.bz2 \
file://tayga.conf \
file://tayga.service \
file://0001-include-sys-uio.patch;striplevel=0 \
"
SRC_URI[sha256sum] = "2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "tayga.service"
EXTRA_OEMAKE += "CFLAGS='${CFLAGS}'"
do_install:append() {
install -m 0644 ${UNPACKDIR}/tayga.conf ${D}${sysconfdir}/tayga.conf
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${UNPACKDIR}/tayga.service ${D}${systemd_unitdir}/system/
}
inherit autotools systemd
@@ -0,0 +1,39 @@
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/apalrd/tayga.git;branch=main;protocol=https;tag=${PV}"
SRCREV = "7f00122b75d808f696df0efe481a8c8919ba9bd7"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "tayga@.service"
SYSTEMD_AUTO_ENABLE = "disable"
EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
do_configure[noexec] = "1"
do_compile() {
oe_runmake
}
do_install() {
oe_runmake install \
DESTDIR=${D} \
prefix=${prefix} \
exec_prefix=${exec_prefix} \
sbindir=${sbindir} \
datarootdir=${datadir} \
mandir=${mandir} \
sysconfdir=${sysconfdir} \
servicedir=${systemd_system_unitdir} \
WITH_SYSTEMD=1
install -d ${D}${sysconfdir}/tayga
install -m 0644 ${S}/tayga.conf.example ${D}${sysconfdir}/tayga/default.conf
}
inherit systemd
RRECOMMENDS:${PN} += "kernel-module-tun"