| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 9999 | 8 | ~amd64 ~arm64 | 0 |
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop unpacker xdg
DESCRIPTION="(Continuation) of Clash Meta GUI based on Tauri."
HOMEPAGE="https://github.com/clash-verge-rev/clash-verge-rev"
if [[ ${PV} == 9999 ]]; then
PROPERTIES+=" live"
else
URL_PREFIX="https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${PV}/Clash.Verge_${PV}_"
SRC_URI="
amd64? ( ${URL_PREFIX}amd64.deb -> ${P}_amd64.deb )
arm64? ( ${URL_PREFIX}arm64.deb -> ${P}_arm64.deb )
"
KEYWORDS="~amd64 ~arm64"
fi
S="${WORKDIR}"
LICENSE="GPL-3"
SLOT="0"
[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl app-misc/jq"
DEPEND="
dev-libs/libayatana-appindicator
net-libs/webkit-gtk:4.1
dev-libs/openssl:0/3
"
RDEPEND="${DEPEND}"
RESTRICT="strip"
src_unpack() {
if [[ ${PV} == 9999 ]]; then
local arch_suffix
case ${ARCH} in
amd64) arch_suffix="amd64_linux" ;;
arm64) arch_suffix="arm64" ;;
*) die "Unsupported architecture: ${ARCH}" ;;
esac
einfo "Fetching latest autobuild version for ${ARCH}..."
# Get the latest version from latest.json
local version
local latest_url="https://github.com/clash-verge-rev/clash-verge-rev"
latest_url+="/releases/download/autobuild/latest.json"
version=$(curl -sL "${latest_url}" | jq -r '.version') || die "Failed to fetch latest version"
# URL encode the + sign in version
local encoded_version="${version//+/%2B}"
local filename="Clash.Verge_${version}_${arch_suffix}.deb"
local dl_url="https://github.com/clash-verge-rev/clash-verge-rev"
dl_url+="/releases/download/autobuild/Clash.Verge_${encoded_version}_${arch_suffix}.deb"
einfo "Downloading ${filename} (version ${version})..."
curl -L -o "${WORKDIR}/${filename}" "${dl_url}" || die "Failed to download ${filename}"
# Use Portage's unpack_deb function for proper extraction
cd "${WORKDIR}" || die
unpack_deb "./${filename}"
else
unpacker_src_unpack
fi
}
src_install() {
exeinto /opt/clash-verge/bin
doexe "${S}"/usr/bin/*
insinto /usr/lib/clash-verge
doins -r "${S}"/usr/lib/Clash\ Verge/resources
domenu "${FILESDIR}"/clash-verge.desktop
doicon -s 128 usr/share/icons/hicolor/128x128/apps/${PN/-bin}.png
doicon -s 256 usr/share/icons/hicolor/256x256@2/apps/${PN/-bin}.png
doicon -s 32 usr/share/icons/hicolor/32x32/apps/${PN/-bin}.png
newinitd "${FILESDIR}"/clash-verge.initd clash-verge
}
dev-libs/libayatana-appindicator net-libs/webkit-gtk:4.1 dev-libs/openssl:0/3
dev-libs/libayatana-appindicator net-libs/webkit-gtk:4.1 dev-libs/openssl:0/3