Install this version:
emerge -a =net-proxy/sing-box-1.13.11
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =net-proxy/sing-box-1.13.11
Or alternatively:
emerge --autounmask-write -a =net-proxy/sing-box-1.13.11
# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-env go-module systemd shell-completion
_PV="${PV/_/-}"
_PV="${_PV/alpha/alpha.}"
_PV="${_PV/beta/beta.}"
_PV="${_PV/rc/rc.}"
VENDOR_PREFIX="https://github.com/gentoo-zh-drafts/sing-box/releases/download/v${_PV}"
DESCRIPTION="The universal proxy platform."
HOMEPAGE="https://sing-box.sagernet.org/ https://github.com/SagerNet/sing-box"
SRC_URI="
https://github.com/SagerNet/sing-box/archive/refs/tags/v${_PV}.tar.gz -> ${P}.tar.gz
${VENDOR_PREFIX}/sing-box-${_PV}-vendor-lite.tar.xz
naive? (
amd64? ( ${VENDOR_PREFIX}/sing-box-${_PV}-vendor-libcronet-so-amd64.tar.xz )
arm64? ( ${VENDOR_PREFIX}/sing-box-${_PV}-vendor-libcronet-so-arm64.tar.xz )
riscv? ( ${VENDOR_PREFIX}/sing-box-${_PV}-vendor-libcronet-so-riscv64.tar.xz )
)
"
S="${WORKDIR}/${PN}-${_PV}"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv"
# Follow: https://sing-box.sagernet.org/installation/build-from-source/#build-tags
# In upstream versions, `naive` is enabled by default, but in Gentoo's downstream versions, it is disabled by default.
IUSE="
+quic grpc +dhcp +wireguard +utls +acme +clash-api v2ray-api
+gvisor tor +tailscale +ccm +ocm naive +cloudflared
"
RDEPEND="
acct-group/${PN}
acct-user/${PN}
"
src_compile() {
local mytags
use quic && mytags+="with_quic,"
use grpc && mytags+="with_grpc,"
use dhcp && mytags+="with_dhcp,"
use wireguard && mytags+="with_wireguard,"
use utls && mytags+="with_utls,"
use acme && mytags+="with_acme,"
use clash-api && mytags+="with_clash_api,"
use v2ray-api && mytags+="with_v2ray_api,"
use gvisor && mytags+="with_gvisor,"
use tor && mytags+="with_embedded_tor,"
use tailscale && mytags+="with_tailscale,"
use ccm && mytags+="with_ccm,"
use ocm && mytags+="with_ocm,"
use naive && mytags+="with_purego,with_naive_outbound,"
use cloudflared && mytags+="with_cloudflared,"
ego build -tags "${mytags%,}" \
-ldflags "-X 'github.com/sagernet/sing-box/constant.Version=${PV}'" \
./cmd/sing-box
mkdir completions
./sing-box completion bash > completions/sing-box
./sing-box completion fish > completions/sing-box.fish
./sing-box completion zsh > completions/_sing-box
}
src_install() {
if ! use naive; then
dobin sing-box
else
insinto /usr/lib/sing-box
doins sing-box "vendor/github.com/sagernet/cronet-go/lib/linux_$(go-env_goarch)/libcronet.so"
dosym ../lib/sing-box/sing-box /usr/bin/sing-box
fperms +x /usr/bin/sing-box /usr/lib/sing-box/sing-box
fi
insinto /etc/sing-box
newins release/config/config.json config.json.example
newinitd release/config/sing-box.initd sing-box
systemd_dounit release/config/sing-box{,@}.service
insinto /usr/share/dbus-1/system.d
newins release/config/sing-box-split-dns.xml sing-box-dns.conf
insinto /usr/share/polkit-1/rules.d
doins release/config/sing-box.rules
dobashcomp completions/sing-box
dofishcomp completions/sing-box.fish
dozshcomp completions/_sing-box
}
Manage flags for this package:
euse -i <flag> -p net-proxy/sing-box |
euse -E <flag> -p net-proxy/sing-box |
euse -D <flag> -p net-proxy/sing-box
acct-group/sing-box acct-user/sing-box
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | sing-box-1.13.11.tar.gz | 946652 bytes | https://github.com/SagerNet/sing-box/archive/refs/tags/v${_PV/rc./rc.}.tar.gz |