%define _enable_debug_packages 0 %define debug_package %{nil} %define __strip /bin/true %global __brp_strip %{nil} %global __brp_strip_comment_note %{nil} %global __brp_strip_static_archive %{nil} Name: eagle Version: 4.0.0 Release: 1%{?dist} Summary: Digital asset manager for designers (Linux Port) License: Proprietary URL: https://eagle.cool Source0: ensure-extracted-app.sh Source1: extract-installer.py Source2: eagle-unpacked-layout.json Source3: stubs.js BuildRequires: python3, curl, bash Requires: nodejs, npm, python3, zstd, xdotool, ffmpeg, dbus-tools %description Eagle helps you collect, search, and organize your design files in one place. %prep %build # Ensure extracted_app payload exists (extract if missing, e.g. COPR or mock chroots) SRC_DIR="%{_sourcedir}" if [ ! -d "${SRC_DIR}/extracted_app" ] || [ ! -f "${SRC_DIR}/extracted_app/run.jsc" ]; then SCRIPT="" for candidate in \ "${SRC_DIR}/ensure-extracted-app.sh" \ "${SRC_DIR}/packaging/ensure-extracted-app.sh" \ "$(dirname ${SRC_DIR})/packaging/ensure-extracted-app.sh"; do if [ -f "$candidate" ]; then SCRIPT="$candidate" break fi done if [ -n "$SCRIPT" ]; then bash "$SCRIPT" fi fi %install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/share/eagle mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/share/applications mkdir -p %{buildroot}/usr/share/icons/hicolor/512x512/apps mkdir -p %{buildroot}/usr/share/pixmaps mkdir -p %{buildroot}/lib/udev/rules.d EXTRACTED_APP="" STUBS_JS="" for candidate in \ "%{_sourcedir}/extracted_app" \ "%{_sourcedir}/../extracted_app" \ "$(dirname %{_sourcedir})/extracted_app" \ "$(dirname $(dirname %{_sourcedir}))/extracted_app"; do if [ -d "$candidate" ] && [ -f "$candidate/run.jsc" ]; then EXTRACTED_APP="$candidate" break fi done for candidate in \ "%{_sourcedir}/stubs.js" \ "%{_sourcedir}/../stubs.js" \ "$(dirname %{_sourcedir})/stubs.js" \ "$(dirname $(dirname %{_sourcedir}))/stubs.js"; do if [ -f "$candidate" ]; then STUBS_JS="$candidate" break fi done if [ -z "$EXTRACTED_APP" ] || [ -z "$STUBS_JS" ]; then echo "[ERROR] Could not locate extracted_app/ or stubs.js" exit 1 fi cp -r "${EXTRACTED_APP}" %{buildroot}/usr/share/eagle/ cp "${STUBS_JS}" %{buildroot}/usr/share/eagle/stubs.js cp "${EXTRACTED_APP}/assets/icon.png" %{buildroot}/usr/share/icons/hicolor/512x512/apps/eagle.png cp "${EXTRACTED_APP}/assets/icon.png" %{buildroot}/usr/share/pixmaps/eagle.png cat << 'EOF' > %{buildroot}/usr/bin/eagle #!/bin/sh export GTK_USE_PORTAL=1 STUBS="/usr/share/eagle/stubs.js" APP="/usr/share/eagle/extracted_app" if command -v electron22 >/dev/null 2>&1; then ELECTRON_BIN="$(command -v electron22)" elif command -v npx >/dev/null 2>&1; then for cache_dir in "${HOME}/.npm/_npx/"*/node_modules/electron; do if [ -d "${cache_dir}" ] && [ ! -f "${cache_dir}/path.txt" ]; then rm -rf "${cache_dir%/*/*}" 2>/dev/null || true fi done ELECTRON_BIN="npx --yes electron@22.3.7" elif command -v electron >/dev/null 2>&1; then ELECTRON_BIN="$(command -v electron)" else echo "[ERROR] No Electron runtime or nodejs/npx found. Please install nodejs." exit 1 fi exec ${ELECTRON_BIN} -r "${STUBS}" "${APP}" --no-sandbox "$@" EOF chmod +x %{buildroot}/usr/bin/eagle cat << 'EOF' > %{buildroot}/usr/share/applications/eagle.desktop [Desktop Entry] Categories=Graphics;Utility; Comment=Digital asset manager for designers Exec=eagle %u Icon=eagle MimeType=application/x-eaglepack;application/x-eagleplugin;application/x-eaglelibrary;x-scheme-handler/eagle; Name=Eagle StartupNotify=true StartupWMClass=Eagle Terminal=false Type=Application Version=1.5 EOF mkdir -p %{buildroot}/usr/share/mime/packages cat << 'EOF' > %{buildroot}/usr/share/mime/packages/eagle.xml Eagle Pack Eagle Plugin Eagle Library EOF cat << 'EOF' > %{buildroot}/lib/udev/rules.d/99-eagle-dmi.rules SUBSYSTEM=="dmi", KERNEL=="product_uuid", MODE="0444" EOF %files /usr/bin/eagle /usr/share/eagle/ /usr/share/applications/eagle.desktop /usr/share/icons/hicolor/512x512/apps/eagle.png /usr/share/pixmaps/eagle.png /usr/share/mime/packages/eagle.xml /lib/udev/rules.d/99-eagle-dmi.rules %changelog * Mon Aug 31 2026 Bryce - 4.0.0-1 - Initial Fedora / RHEL package for Eagle Linux Port