# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CRATES="" RUST_MIN_VER="1.95.0" F128_COMMIT="7f971c34568dd6ae4e97a602bf15c23137b2cad5" INSTDEC_COMMIT="4cd6db5be5d8bb1dc321d98ab93648078ab2b1b6" inherit cargo xdg desktop DESCRIPTION="Modern waveform viewer for FPGA/ASIC development" HOMEPAGE="https://surfer-project.org/ https://gitlab.com/surfer-project/surfer" SRC_URI=" https://gitlab.com/surfer-project/surfer/-/archive/v${PV}/surfer-v${PV}.tar.gz -> ${P}.tar.gz https://github.com/jkarns275/f128/archive/${F128_COMMIT}.tar.gz -> f128-${F128_COMMIT}.tar.gz https://github.com/ics-jku/instruction-decoder/archive/${INSTDEC_COMMIT}.tar.gz -> instruction-decoder-${INSTDEC_COMMIT}.tar.gz https://vendors.simple-co.de/${PN}/${P}-vendor.tar.xz " LICENSE="EUPL-1.2" SLOT="0" KEYWORDS="~amd64" IUSE="lto wayland X" RDEPEND=" X? ( x11-libs/libX11 ) wayland? ( dev-libs/wayland ) media-libs/fontconfig " DEPEND="${RDEPEND}" S="${WORKDIR}/surfer-v${PV}" src_unpack() { unpack ${P}.tar.gz # adding our own vendors mkdir -p "${ECARGO_VENDOR}" || die pushd "${ECARGO_VENDOR}" > /dev/null || die unpack ${P}-vendor.tar.xz popd > /dev/null || die # adding submodules manually unpack f128-${F128_COMMIT}.tar.gz unpack instruction-decoder-${INSTDEC_COMMIT}.tar.gz # remove commit-hashes mv "${WORKDIR}/f128-${F128_COMMIT}"/* "${S}/f128/" || die mv "${WORKDIR}/instruction-decoder-${INSTDEC_COMMIT}"/* "${S}/instruction-decoder/" || die } src_configure() { cargo_gen_config cat <<- EOF > "${ECARGO_HOME}/config.toml" || die [source.crates-io] replace-with = "vendored-sources" [source."git+https://gitlab.com/oscargus/egui_skia_renderer.git?rev=36fe7b49a59a87f9d4b62533bd81e6e37139e9cd"] git = "https://gitlab.com/oscargus/egui_skia_renderer.git" rev = "36fe7b49a59a87f9d4b62533bd81e6e37139e9cd" replace-with = "vendored-sources" [source.vendored-sources] directory = "${ECARGO_VENDOR}" EOF } src_prepare() { # enable LTO thin by default ! use lto \ sed -i 's/lto = true/lto = "thin"/' "${S}/Cargo.toml" || die # correcting icon sed -i 's/Icon=com.gitlab.surferproject.surfer.png/Icon=com.gitlab.surferproject.surfer/' \ surfer/assets/com.gitlab.surferproject.surfer.desktop || die # version overrides export VERGEN_GIT_BRANCH="v${PV}" export VERGEN_GIT_COMMIT_DATE="2026-04-27" export VERGEN_GIT_SHA="bd749b1f" export VERGEN_GIT_DESCRIBE="v${PV}" export VERGEN_IDEMPOTENT=1 export VERGEN_IDEMPOTENT_OUTPUT="$(date -u +%Y-%m-%dT%H:%M:%SZ)" default } src_compile() { cargo_src_compile --frozen --offline --package surfer } src_install() { cargo_src_install --path surfer domenu surfer/assets/com.gitlab.surferproject.surfer.desktop doicon surfer/assets/com.gitlab.surferproject.surfer.png } pkg_postinst() { xdg_icon_cache_update xdg_desktop_database_update } pkg_postrm() { xdg_icon_cache_update xdg_desktop_database_update }