Name: obscura Version: 0.2.1 Release: %autorelease Summary: Lightweight headless browser engine for AI agents and web scraping License: Apache-2.0 URL: https://github.com/h4ckf0r0day/obscura Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: obscura.service Source2: obscura-user.service Source3: obscura-mcp.service Source4: obscura-mcp.json BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make BuildRequires: cmake BuildRequires: clang BuildRequires: clang-devel BuildRequires: llvm-devel BuildRequires: openssl-devel BuildRequires: systemd-rpm-macros BuildRequires: git-core %if 0%{?rhel} BuildRequires: rust-toolset %else BuildRequires: cargo BuildRequires: rust %endif %description Obscura is an open-source, high-performance headless browser engine written in Rust, specifically designed for web scraping and AI agent automation. It runs real JavaScript via V8, supports the Chrome DevTools Protocol (CDP), provides built-in stealth features, and acts as a lightweight drop-in replacement for headless Chromium with Puppeteer and Playwright. %package skill Summary: AI Agent Skill definitions for Obscura BuildArch: noarch Requires: obscura = %{version}-%{release} %description skill Skill definitions and prompt instructions for AI coding agents (Antigravity CLI, Crush, OpenCode, Claude) to drive Obscura headless browser workflows. %package mcp Summary: Model Context Protocol (MCP) server daemon and discovery manifest BuildArch: noarch Requires: obscura = %{version}-%{release} %description mcp Systemd user service and MCP server discovery manifest for connecting AI agents directly to Obscura over stdio or HTTP/SSE transports. %prep %autosetup -p1 %build export OBSCURA_VERSION=%{version} # Unset compiler flags so btls-sys CMake build does not inherit debuginfo flags # that corrupt its internal objcopy symbol prefixing on static archives. unset CFLAGS CXXFLAGS LDFLAGS cargo build --release --features render,stealth --package obscura-cli --bins %install install -Dpm 0755 target/release/obscura %{buildroot}%{_bindir}/obscura install -Dpm 0755 target/release/obscura-worker %{buildroot}%{_bindir}/obscura-worker install -Dpm 0644 %{SOURCE1} %{buildroot}%{_unitdir}/obscura.service install -Dpm 0644 %{SOURCE2} %{buildroot}%{_userunitdir}/obscura.service install -Dpm 0644 %{SOURCE3} %{buildroot}%{_userunitdir}/obscura-mcp.service install -Dpm 0644 %{SOURCE4} %{buildroot}%{_datadir}/mcp/servers/obscura.json install -Dpm 0644 %{SOURCE4} %{buildroot}%{_datadir}/obscura/mcp/obscura.json install -Dpm 0644 skills/obscura/SKILL.md %{buildroot}%{_datadir}/obscura/skills/obscura/SKILL.md %check ./target/release/obscura fetch "data:text/html,