mirror of
https://github.com/gentoo-mirror/gentoo-zh.git
synced 2025-04-18 15:28:57 -04:00
95 lines
2.5 KiB
Bash
95 lines
2.5 KiB
Bash
# Copyright 2023-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit flag-o-matic systemd
|
|
|
|
DESCRIPTION="A Modern Dashboard For dae"
|
|
HOMEPAGE="https://github.com/daeuniverse/daed"
|
|
SRC_URI="
|
|
https://github.com/daeuniverse/daed/releases/download/v${PV/_rc/rc}/daed-full-src.zip -> ${P}.zip
|
|
webui? ( https://github.com/daeuniverse/daed/releases/download/v${PV/_rc/rc}/web.zip -> ${P}-web.zip )
|
|
"
|
|
# EGIT_REPO_URI="https://github.com/daeuniverse/daed.git"
|
|
|
|
S="${WORKDIR}"
|
|
LICENSE="MIT AGPL-3"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
|
|
DEPEND="
|
|
app-alternatives/v2ray-geoip
|
|
app-alternatives/v2ray-geosite
|
|
"
|
|
RDEPEND="${DEPEND}"
|
|
BDEPEND="
|
|
llvm-core/clang
|
|
app-arch/unzip
|
|
>=dev-lang/go-1.22
|
|
"
|
|
IUSE="+webui"
|
|
RESTRICT="strip"
|
|
|
|
src_prepare() {
|
|
# Prevent conflicting with the user's flags
|
|
sed -i -e 's/-Werror//' wing/dae-core/Makefile || die 'Failed to remove -Werror via sed'
|
|
if use webui; then
|
|
# Use upstream web archive
|
|
sed -e 's|daed: submodule $(DAE_WING_READY) dist|daed: $(DAE_WING_READY)|' \
|
|
-i Makefile || die
|
|
mv -v "${WORKDIR}/web" "${S}/dist" || die
|
|
fi
|
|
|
|
default
|
|
}
|
|
|
|
src_compile(){
|
|
#-flto makes llvm-strip complains
|
|
#llvm-strip: error: '*/control/bpf_bpfel.o': The file was not recognized as a valid object file
|
|
filter-lto
|
|
# sed -i '/git submodule update/d' wing/Makefile || die
|
|
# sed -i 's/git rev-parse --short HEAD/echo/' vite.config.ts || die
|
|
if ! use webui; then
|
|
cd wing || die
|
|
fi
|
|
|
|
# for dae's ebpf target
|
|
# gentoo-zh#3720
|
|
filter-flags "-march=*" "-mtune=*"
|
|
append-cflags "-fno-stack-protector"
|
|
|
|
GO_ROOT="${S}" SKIP_SUBMODULES=1 emake APPNAME="${PN}" VERSION="${PV}"
|
|
}
|
|
|
|
src_install(){
|
|
local service=install/daed.service
|
|
if use webui; then
|
|
dobin daed
|
|
systemd_dounit ${service}
|
|
else
|
|
dobin wing/dae-wing
|
|
sed -i "s!/usr/bin/daed!/usr/bin/dae-wing!" ${service} || die
|
|
systemd_newunit ${service} dae-wing.service
|
|
fi
|
|
keepdir /etc/daed/
|
|
dosym -r "/usr/share/v2ray/geosite.dat" /usr/share/daed/geosite.dat
|
|
dosym -r "/usr/share/v2ray/geoip.dat" /usr/share/daed/geoip.dat
|
|
|
|
# thanks to @MarksonHon
|
|
newinitd "${FILESDIR}"/${PN}.initd daed
|
|
}
|
|
|
|
pkg_postinst() {
|
|
elog
|
|
elog "For OpenRC user, if you want to use"
|
|
elog "openrc to manager daed service,"
|
|
elog "please refer to dae document to modify"
|
|
elog "rc.conf and sysfs first, then reboot."
|
|
elog "https://github.com/daeuniverse/dae/blob/main/docs/en/tutorials/run-on-alpine.md"
|
|
elog "Now you can start and add it to default runlevel "
|
|
elog "# rc-service daed start"
|
|
elog "# rc-update add daed default"
|
|
elog
|
|
}
|