Name: claude-desktop Version: 0.11.3 Release: 1%{?dist} Summary: Claude Desktop for Linux License: Proprietary URL: https://www.anthropic.com BuildArch: x86_64 Requires: nodejs >= 12.0.0, npm, p7zip %description Claude is an AI assistant from Anthropic. This package provides the desktop interface for Claude. %install mkdir -p %{buildroot}/usr/lib64/%{name} mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/share/applications mkdir -p %{buildroot}/usr/share/icons # Copy files from the INSTALL_DIR cp -r /home/perf/t/build/fedora-package/usr/lib/%{name}/* %{buildroot}/usr/lib64/%{name}/ cp -r /home/perf/t/build/fedora-package/usr/bin/* %{buildroot}/usr/bin/ cp -r /home/perf/t/build/fedora-package/usr/share/applications/* %{buildroot}/usr/share/applications/ cp -r /home/perf/t/build/fedora-package/usr/share/icons/* %{buildroot}/usr/share/icons/ %files %{_bindir}/claude-desktop %{_libdir}/%{name} %{_datadir}/applications/claude-desktop.desktop %{_datadir}/icons/hicolor/*/apps/claude-desktop.png %post npm i electron # Update icon caches gtk-update-icon-cache -f -t %{_datadir}/icons/hicolor || : # Force icon theme cache rebuild touch -h %{_datadir}/icons/hicolor >/dev/null 2>&1 || : update-desktop-database %{_datadir}/applications || : # Set correct permissions for chrome-sandbox echo "Setting chrome-sandbox permissions..." SANDBOX_PATH="" # Check for sandbox in locally packaged electron first if [ -f "/usr/lib64/claude-desktop/app.asar.unpacked/node_modules/electron/dist/chrome-sandbox" ]; then SANDBOX_PATH="/usr/lib64/claude-desktop/app.asar.unpacked/node_modules/electron/dist/chrome-sandbox" elif [ -n "perf" ]; then # Running via sudo: try to get electron from the invoking user's environment if su - "perf" -c "command -v electron >/dev/null 2>&1"; then ELECTRON_PATH=/usr/local/bin/electron POTENTIAL_SANDBOX="$(dirname "$(dirname "$ELECTRON_PATH")")/lib/node_modules/electron/dist/chrome-sandbox" if [ -f "$POTENTIAL_SANDBOX" ]; then SANDBOX_PATH="$POTENTIAL_SANDBOX" fi fi else # Running directly as root (no SUDO_USER); attempt to find electron in root's PATH if command -v electron >/dev/null 2>&1; then ELECTRON_PATH=/usr/local/bin/electron POTENTIAL_SANDBOX="$(dirname "$(dirname "$ELECTRON_PATH")")/lib/node_modules/electron/dist/chrome-sandbox" if [ -f "$POTENTIAL_SANDBOX" ]; then SANDBOX_PATH="$POTENTIAL_SANDBOX" fi fi fi if [ -n "$SANDBOX_PATH" ] && [ -f "$SANDBOX_PATH" ]; then echo "Found chrome-sandbox at: $SANDBOX_PATH" chown root:root "$SANDBOX_PATH" || echo "Warning: Failed to chown chrome-sandbox" chmod 4755 "$SANDBOX_PATH" || echo "Warning: Failed to chmod chrome-sandbox" echo "Permissions set for $SANDBOX_PATH" else echo "Warning: chrome-sandbox binary not found. Sandbox may not function correctly." fi %changelog * Fri Jun 27 2025 Claude Desktop Linux Maintainers 0.11.3-1 - Initial package