sci-mathematics/rodin - 3.9.0 (eventb-rossi)

Search

Install

Install this version:

emerge -a =sci-mathematics/rodin-3.9.0

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =sci-mathematics/rodin-3.9.0

Or alternatively:

emerge --autounmask-write -a =sci-mathematics/rodin-3.9.0

Package Information

Description:
IDE for formal modelling and verification with Event-B
Homepage:
https://www.event-b.org/
License:
EPL-1.0 EPL-2.0

Ebuild Details

Version EAPI Keywords Slot
3.9.0 8 -* ~amd64 0
View Raw Ebuild
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop optfeature xdg

# Upstream build id embedded in the tarball name; update on version bumps.
MY_BUILD="202406100806-9b87fe13d"
MY_SF_DIR="$(ver_cut 1-2)"

DESCRIPTION="IDE for formal modelling and verification with Event-B"
HOMEPAGE="https://www.event-b.org/"
SRC_URI="https://downloads.sourceforge.net/rodin-b-sharp/Core_Rodin_Platform/${MY_SF_DIR}/${PN}-$(ver_cut 1-3).${MY_BUILD}-linux.gtk.x86_64.tar.gz"
S="${WORKDIR}/${PN}"

LICENSE="EPL-1.0 EPL-2.0"
SLOT="0"
KEYWORDS="-* ~amd64"

# Prebuilt Eclipse RCP product without a bundled JRE.
RDEPEND="
	>=virtual/jre-17:*
	x11-libs/gtk+:3
"

RESTRICT="strip"
QA_PREBUILT="opt/${PN}/*"

src_install() {
	insinto /usr/share/pixmaps
	newins icon.xpm ${PN}.xpm
	# Force a light GTK theme for the Rodin process. The e4 CSS theme pinned
	# in rodin.ini below only styles Eclipse-drawn widgets; native SWT/GTK
	# widgets (trees, editor area, menus) follow the desktop GTK theme,
	# leaving the UI partly dark on a dark desktop. GTK_THEME overrides that
	# for this process only (mirrors the upstream launcher).
	cat > "${T}"/${PN} <<-EOF || die
		#!/bin/sh
		export GTK_THEME=Adwaita:light
		exec ${EPREFIX}/opt/${PN}/${PN} "\$@"
	EOF
	dobin "${T}"/${PN}
	make_desktop_entry ${PN} "Rodin Platform" ${PN} "Development;IDE"

	# Keep the vendor tree intact: the Eclipse native launcher resolves
	# its install location from /proc/self/exe. Move rather than copy
	# to avoid duplicating the large tree in the build directory.
	dodir /opt
	cd "${WORKDIR}" || die

	# JNA bundles libjnidispatch for ~two dozen foreign OS/ABI combos as loose
	# files in the exploded plugin dir. A 64-bit JVM only ever loads the host
	# (linux-x86-64) copy; the rest are dead weight. The 32-bit linux-x86 build
	# in particular records NEEDED=libc.so.6, which makes portage preserve
	# glibc's libc.so.6 indefinitely (a prebuilt blob can never be relinked).
	# Drop every native copy but the host ABI.
	find "${S}"/plugins/com.sun.jna_*/com/sun/jna -mindepth 2 -name 'libjnidispatch.*' \
		-not -path '*/linux-x86-64/*' -delete || die

	# Eclipse 4.x auto-detects the desktop's dark appearance and applies its
	# dark CSS theme regardless of the product's light-mode intent, yielding a
	# broken mixed-mode UI. Pin the light default (mirrors the upstream cask).
	[[ -f "${S}/rodin.ini" ]] || die "rodin.ini not found at expected path"
	printf '%s\n' \
		"-Dorg.eclipse.e4.ui.css.swt.theme=org.eclipse.e4.ui.css.theme.e4_default" \
		>> "${S}/rodin.ini" || die

	mv "${S}" "${ED}/opt/${PN}" || die
	mkdir "${S}" || die # later phases expect ${S} to exist
}

pkg_postinst() {
	xdg_pkg_postinst
	optfeature "browser-backed views (help, embedded documentation)" \
		net-libs/webkit-gtk:4.1
}

Inherited Eclasses

xdg

Dependencies

RDEPEND

	>=virtual/jre-17:*
	x11-libs/gtk+:3