# 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" ;; 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 }