Install this version:
emerge -a =sci-electronics/surfer-0.7.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =sci-electronics/surfer-0.7.0
Or alternatively:
emerge --autounmask-write -a =sci-electronics/surfer-0.7.0
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 0.7.0 | 8 | ~amd64 | 0 |
# 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
}
Manage flags for this package:
euse -i <flag> -p sci-electronics/surfer |
euse -E <flag> -p sci-electronics/surfer |
euse -D <flag> -p sci-electronics/surfer
X? ( x11-libs/libX11 ) wayland? ( dev-libs/wayland ) media-libs/fontconfig
X? ( x11-libs/libX11 ) wayland? ( dev-libs/wayland ) media-libs/fontconfig