Re: Yocto recipe for Tailscale #yocto #golang


Mike Thompson
 

Inheriting from go-mod didn't make any difference that I could tell.

 

This is what I have so far for the Tailscale recipe.  I'm resolving dependencies with individual Bitbake files that pull in each dependency as I find them.

 

---------------------------------------------

# tailscale_1.0.5.bb

SUMMARY = "Tailscale client and daemon for Linux"

HOMEPAGE = "github.com/tailscale/tailscale"

 

LICENSE = "CLOSED"

LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d995c1c44529856a0f35a5ad43e51cc5"

 

SRC_URI = "git://github.com/tailscale/tailscale.git;nobranch=1;tag=v${PV}"

 

DEPENDS += "github.com-apenwarr-fixconsole \

            github.com-coreos-go-iptable \

            github.com-godbus-dbus \

            github.com-golang-groupcache \

            github.com-jsimonetti-rtnetlink \

            github.com-klauspost-compress \

            github.com-mdlayher-netlink \

            github.com-pborman-getopt \

            github.com-peterbourgon-ff \

            github.com-tailscale-wireguard-go \

            github.com-tcnksm-go-httpstat \

            github.com-toqueteos-webbrowser \

            golang.org-x \

            go4.org-mem \

            inet.af-netaddr \

            rsc.io-goversion \

           "

 

inherit go

inherit go-mod

GO_IMPORT = "tailscale.com"

GO_INSTALL = "${GO_IMPORT}/cmd/tailscale"

 

RDEPENDS_${PN}-dev += "bash"

---------------------------------------------

Unfortunately, the golang.org-x.bb recipe is turning into an endless source of dependencies during do_compile stage.  I feel I must be on the wrong track.
 
Is there a way to package up the following so that just what is needed by Tailscale is included, but dependencies not needed by Tailscale are ignored?
 
---------------------------------------------
# golang.org-x.bb
DESCRIPTION = "Go X libraries"
 
SRC_URI = "\
         git://github.com/golang/mod.git;protocol=https;name=mod;destsuffix=${PN}-${PV}/src/golang.org/x/mod \
         git://github.com/golang/net.git;protocol=https;name=net;destsuffix=${PN}-${PV}/src/golang.org/x/net \
         git://github.com/golang/sys.git;protocol=https;name=sys;destsuffix=${PN}-${PV}/src/golang.org/x/sys \
         git://github.com/golang/text.git;protocol=https;name=text;destsuffix=${PN}-${PV}/src/golang.org/x/text \
         git://github.com/golang/time.git;protocol=https;name=time;destsuffix=${PN}-${PV}/src/golang.org/x/time \
         git://github.com/golang/sync.git;protocol=https;name=sync;destsuffix=${PN}-${PV}/src/golang.org/x/sync \
         git://github.com/golang/tools.git;protocol=https;name=tools;destsuffix=${PN}-${PV}/src/golang.org/x/tools \
         git://github.com/golang/build.git;protocol=https;name=build;destsuffix=${PN}-${PV}/src/golang.org/x/build \
         git://github.com/golang/oauth2.git;protocol=https;name=oauth2;destsuffix=${PN}-${PV}/src/golang.org/x/oauth2 \
         git://github.com/golang/crypto.git;protocol=https;name=crypto;destsuffix=${PN}-${PV}/src/golang.org/x/crypto \
         git://github.com/golang/xerrors.git;protocol=https;name=xerrors;destsuffix=${PN}-${PV}/src/golang.org/x/xerrors \
         "
SRCREV_FORMAT = "golang"
SRCREV_mod = "${AUTOREV}"
SRCREV_net = "${AUTOREV}"
SRCREV_sys = "${AUTOREV}"
SRCREV_text = "${AUTOREV}"
SRCREV_time = "${AUTOREV}"
SRCREV_sync = "${AUTOREV}"
SRCREV_tools = "${AUTOREV}"
SRCREV_build = "${AUTOREV}"
SRCREV_oauth2 = "${AUTOREV}"
SRCREV_crypto = "${AUTOREV}"
SRCREV_xerrors = "${AUTOREV}"
 
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
inherit go
GO_IMPORT = "golang.org/x"
---------------------------------------------
 
Thanks,
 
Mike Thompson

Join yocto@lists.yoctoproject.org to automatically receive all group messages.