Install this version:
emerge -a =sci-electronics/quartus-prime-lite-25.1.0.1129
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =sci-electronics/quartus-prime-lite-25.1.0.1129
Or alternatively:
emerge --autounmask-write -a =sci-electronics/quartus-prime-lite-25.1.0.1129
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 25.1.0.1129 | 8 | ~amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{12..14} )
CHECKREQS_MEMORY="4G"
CHECKREQS_DISK_BUILD="20G"
CHECKREQS_DISK_USR="12G"
inherit check-reqs desktop python-any-r1 udev xdg
DESCRIPTION="Intel(Altera) Quartus Prime Lite FPGA design software"
HOMEPAGE="https://www.altera.com/products/development-tools/quartus"
MAINVER="${PV%.*.*}"
BUILDVER="${PV##*.}"
LITEVER="${MAINVER}std.0.${BUILDVER}"
INTELDIR="/opt/intelFPGA/${MAINVER}"
SRC_URI="Quartus-lite-${LITEVER}-linux.tar"
LICENSE="Intel-FPGA"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+X"
REQUIRED_USE="X"
RESTRICT="fetch strip"
RDEPEND="
app-arch/bzip2
dev-libs/expat
dev-libs/glib
dev-libs/libxml2
dev-libs/openssl
media-libs/alsa-lib
media-libs/fontconfig
media-libs/freetype
media-libs/libpulse
sys-apps/dbus
sys-apps/util-linux
sys-libs/libxcrypt[compat]
sys-libs/ncurses-compat
sys-libs/zlib
x11-libs/libdrm
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrender
x11-libs/libXtst
"
DEPEND="${RDEPEND}"
BDEPEND="
${PYTHON_DEPS}
app-arch/unzip
dev-util/patchelf
"
S="${WORKDIR}"
QA_PREBUILT="${INTELDIR#/}/*"
QA_SONAME="${INTELDIR#/}/*"
QA_FLAGS_IGNORED="${INTELDIR#/}/*"
QA_TEXTRELS="${INTELDIR#/}/*"
QA_EXECSTACK="${INTELDIR#/}/*"
QA_WX_LOAD="${INTELDIR#/}/*"
pkg_nofetch() {
elog "This package requires manual download due to Intel SSO login."
elog ""
elog "1. Go to: https://www.altera.com/products/development-tools/quartus"
elog "2. Select Quartus Prime Lite Edition ${MAINVER} - Complete Download"
elog "3. Download: Quartus-lite-${LITEVER}-linux.tar (8.9 GB)"
elog " SHA1: 833c96461eb55e0124f358c8ec9322ba1fbd5286"
elog "4. Place in: ${DISTDIR}"
}
pkg_pretend() {
check-reqs_pkg_pretend
}
pkg_setup() {
check-reqs_pkg_setup
python-any-r1_pkg_setup
}
src_unpack() {
unpack "Quartus-lite-${LITEVER}-linux.tar"
}
src_install() {
local extractor="${FILESDIR}/quartus_extractor.py"
# Extract Quartus base from the .run installer (passive, no execution)
"${PYTHON}" "${extractor}" \
"${WORKDIR}/components/QuartusLiteSetup-${LITEVER}-linux.run" \
--extract "${ED}${INTELDIR}" \
--component quartus_base || die "Quartus extraction failed"
# Extract license component
"${PYTHON}" "${extractor}" \
"${WORKDIR}/components/QuartusLiteSetup-${LITEVER}-linux.run" \
--extract "${ED}${INTELDIR}" \
--component license_component || die "License extraction failed"
# Device support from .qdz files (plain zip archives)
local qdz
for qdz in "${WORKDIR}"/components/*.qdz; do
[[ -f "${qdz}" ]] || continue
einfo "Extracting device support: $(basename "${qdz}")"
unzip -q -o "${qdz}" -d "${ED}${INTELDIR}" || die "Failed to extract $(basename "${qdz}")"
done
# Fix permissions - CookFS doesn't store Unix permissions
chmod -R +x "${ED}${INTELDIR}/quartus/bin" 2>/dev/null
chmod -R +x "${ED}${INTELDIR}/nios2eds/bin" 2>/dev/null
chmod -R +x "${ED}${INTELDIR}/niosv/bin" 2>/dev/null
# Create soname symlinks (official installer does ldconfig)
ldconfig -n "${ED}${INTELDIR}/quartus/linux64" 2>/dev/null
# Create unversioned lib symlinks missing from passive extraction
patchelf --replace-needed liblzma.so.0 liblzma.so.5 \
"${ED}${INTELDIR}/quartus/linux64/libboost_iostreams-x64.so.1.70.0"
for lib in "${ED}${INTELDIR}/quartus/linux64"/lib*.so.*; do
[[ -f "${lib}" ]] || continue
base="${lib%%\.so\.*}.so"
[[ -e "${base}" ]] || ln -sf "$(basename "${lib}")" "${base}"
done
# Fix NULL DT_RPATH and insecure RUNPATH
patchelf --remove-rpath "${ED}${INTELDIR}/quartus/linux64/libgcc_s.so.1" 2>/dev/null
patchelf --remove-rpath "${ED}${INTELDIR}/quartus/linux64/libgomp.so.1" 2>/dev/null
patchelf --remove-rpath "${ED}${INTELDIR}/quartus/linux64/libstdc++.so.6" 2>/dev/null
find "${ED}${INTELDIR}/ip/altera/mentor_vip_ae" -name "*.so" \
-exec patchelf --remove-rpath {} \; 2>/dev/null
# Remove Matlab MEX files (useless without Matlab)
find "${ED}${INTELDIR}" \( -name "*.mexglx" -o -name "*.mexa64" \) -delete
# Remove broken bundled Perl/Python modules with unresolvable deps
rm -f "${ED}${INTELDIR}/quartus/linux64/perl/lib/site_perl"/*/x86_64-linux-thread-multi/auto/*/SSLeay/SSLeay.so
rm -f "${ED}${INTELDIR}/quartus/linux64/perl/lib"/*/x86_64-linux-thread-multi/auto/DB_File/DB_File.so
rm -f "${ED}${INTELDIR}/quartus/linux64/python/lib/readline"*_failed.so
rm -f "${ED}${INTELDIR}/quartus/linux64/python/lib/_dbm"*.so
# Cleanup
rm -rf "${ED}${INTELDIR}"/{uninstall,logs} 2>/dev/null
find "${ED}${INTELDIR}" -name unzip -delete 2>/dev/null
find "${ED}${INTELDIR}" -type d -exec chmod a-s {} + 2>/dev/null
find "${ED}${INTELDIR}" -perm -o+w -not -type l -exec chmod go-w {} + 2>/dev/null
find "${ED}${INTELDIR}" -name "*.la" -delete 2>/dev/null
# Remove unused Qt6 QML plugins with unresolvable deps
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtQuick/Timeline"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtQuick/VirtualKeyboard"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtTextToSpeech"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtSensors"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtScxml"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtRemoteObjects"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtOpcUa"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtMultimedia"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtCharts"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/QtQml/StateMachine"
rm -rf "${ED}${INTELDIR}/quartus/linux64/qt6/qml/Qt/labs/lottieqt"
# Fix embedded paths
sed -i "s,${ED},,g" "${ED}${INTELDIR}/quartus/sopc_builder/.sopc_builder" 2>/dev/null
# Environment setup
cat > "${T}/quartus.sh" <<-EOF
export QUARTUS_ROOTDIR="${INTELDIR}/quartus"
export PATH="\${PATH}:${INTELDIR}/quartus/bin"
EOF
insinto /etc/profile.d
doins "${T}/quartus.sh"
# USB Blaster udev rules
cat > "${T}/51-usbblaster.rules" <<-EOF
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", MODE="0666"
EOF
udev_newrules "${T}/51-usbblaster.rules" 51-usbblaster.rules
# Desktop entry
make_desktop_entry "env QT_QPA_PLATFORM=xcb ${INTELDIR}/quartus/bin/quartus" \
"Quartus Prime Lite" "${INTELDIR}/quartus/adm/quartusii.png" "Development"
# License symlink
dosym "${INTELDIR}/licenses/license.txt" "/usr/share/licenses/${PN}/LICENSE"
}
pkg_postinst() {
udev_reload
xdg_desktop_database_update
xdg_icon_cache_update
elog "Quartus installed to ${INTELDIR}"
elog "Run 'source /etc/profile.d/quartus.sh' or re-login to update PATH"
elog "USB Blaster udev rules installed - reload with: udevadm control --reload-rules"
}
pkg_postrm() {
udev_reload
xdg_desktop_database_update
xdg_icon_cache_update
}
Manage flags for this package:
euse -i <flag> -p sci-electronics/quartus-prime-lite |
euse -E <flag> -p sci-electronics/quartus-prime-lite |
euse -D <flag> -p sci-electronics/quartus-prime-lite
app-arch/bzip2 dev-libs/expat dev-libs/glib dev-libs/libxml2 dev-libs/openssl media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-libs/libpulse sys-apps/dbus sys-apps/util-linux sys-libs/libxcrypt[compat] sys-libs/ncurses-compat sys-libs/zlib x11-libs/libdrm x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXau x11-libs/libXext x11-libs/libXi x11-libs/libXrender x11-libs/libXtst
app-arch/bzip2 dev-libs/expat dev-libs/glib dev-libs/libxml2 dev-libs/openssl media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-libs/libpulse sys-apps/dbus sys-apps/util-linux sys-libs/libxcrypt[compat] sys-libs/ncurses-compat sys-libs/zlib x11-libs/libdrm x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXau x11-libs/libXext x11-libs/libXi x11-libs/libXrender x11-libs/libXtst
app-arch/unzip dev-util/patchelf