From 3dbf47ab50dbbc48130656bfd4f6bdc513d7de82 Mon Sep 17 00:00:00 2001 From: Suyog Tandel Date: Sat, 17 Jan 2026 02:17:32 +0530 Subject: [PATCH] feat: Packaging picoforge for Fedora, CentOS/RHEL and OpenSuse (#11) * Initialized to use tito. * chore: add rpm packaging spec file * Fix tauri command not found by using npm wrapper * fix: specfile build failure due to wrong tauri flag * fix: add no-bundle flag for tauri build in specfile * Automatic commit of package [picoforge] release [0.2.2-1]. Created by command: /usr/bin/tito tag * chore: Move spec file to data directory * Revert "chore: Move spec file to data directory" This reverts commit 99ee99475bc9eca28e05cb18a26edf7581501be4. * fix: appicon name in rpm spec file * fix: icon filename to match desktop file * fix: revert app version and release in spec file * chore: reset tito * Initialized to use tito. * chore: revert spec file * Automatic commit of package [picoforge] release [0.2.1-1]. Created by command: /usr/bin/tito tag --keep-version --- .tito/packages/.readme | 3 + .tito/packages/picoforge | 1 + .tito/tito.props | 6 ++ data/in.suyogtandel.picoforge.desktop | 11 +++ .../screenshots}/screenshot-1.webp | Bin .../screenshots}/screenshot-2.webp | Bin .../screenshots}/screenshot-3.webp | Bin picoforge.spec | 82 ++++++++++++++++++ 8 files changed, 103 insertions(+) create mode 100644 .tito/packages/.readme create mode 100644 .tito/packages/picoforge create mode 100644 .tito/tito.props create mode 100644 data/in.suyogtandel.picoforge.desktop rename {assets => data/screenshots}/screenshot-1.webp (100%) rename {assets => data/screenshots}/screenshot-2.webp (100%) rename {assets => data/screenshots}/screenshot-3.webp (100%) create mode 100644 picoforge.spec diff --git a/.tito/packages/.readme b/.tito/packages/.readme new file mode 100644 index 0000000..b9411e2 --- /dev/null +++ b/.tito/packages/.readme @@ -0,0 +1,3 @@ +the .tito/packages directory contains metadata files +named after their packages. Each file has the latest tagged +version and the project's relative directory. diff --git a/.tito/packages/picoforge b/.tito/packages/picoforge new file mode 100644 index 0000000..590f726 --- /dev/null +++ b/.tito/packages/picoforge @@ -0,0 +1 @@ +0.2.1-1 ./ diff --git a/.tito/tito.props b/.tito/tito.props new file mode 100644 index 0000000..9f6fd2b --- /dev/null +++ b/.tito/tito.props @@ -0,0 +1,6 @@ +[buildconfig] +builder = tito.builder.Builder +tagger = tito.tagger.VersionTagger +changelog_do_not_remove_cherrypick = 0 +changelog_format = %s (%ae) + diff --git a/data/in.suyogtandel.picoforge.desktop b/data/in.suyogtandel.picoforge.desktop new file mode 100644 index 0000000..ec18d72 --- /dev/null +++ b/data/in.suyogtandel.picoforge.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=picoforge +Exec=picoforge +Icon=in.suyogtandel.picoforge +Terminal=false +Type=Application +Categories=Utility;Clock; +Keywords=Config; +StartupNotify=true +DBusActivatable=true diff --git a/assets/screenshot-1.webp b/data/screenshots/screenshot-1.webp similarity index 100% rename from assets/screenshot-1.webp rename to data/screenshots/screenshot-1.webp diff --git a/assets/screenshot-2.webp b/data/screenshots/screenshot-2.webp similarity index 100% rename from assets/screenshot-2.webp rename to data/screenshots/screenshot-2.webp diff --git a/assets/screenshot-3.webp b/data/screenshots/screenshot-3.webp similarity index 100% rename from assets/screenshot-3.webp rename to data/screenshots/screenshot-3.webp diff --git a/picoforge.spec b/picoforge.spec new file mode 100644 index 0000000..49bab27 --- /dev/null +++ b/picoforge.spec @@ -0,0 +1,82 @@ +Name: picoforge +Version: 0.2.1 +Release: 1%{?dist} +Summary: An open source commissioning tool for Pico FIDO security keys. Developed with Rust, Tauri, and Svelte. +License: AGPL-3.0 +URL: https://github.com/librekeys/picoforge +Source0: %{name}-%{version}.tar.gz + +# Dependencies needed to compile Tauri/Rust +BuildRequires: curl +BuildRequires: unzip + +# Standard Tauri v2 Requirements +BuildRequires: gtk3-devel +BuildRequires: webkit2gtk4.1-devel +BuildRequires: openssl-devel +BuildRequires: glib2-devel +BuildRequires: libsoup3-devel +BuildRequires: libappindicator-gtk3-devel + +# HARDWARE / FIDO Specific +BuildRequires: pcsc-lite-devel +BuildRequires: systemd-devel + +# Build Tools +BuildRequires: rust +BuildRequires: cargo +BuildRequires: curl +BuildRequires: unzip + +%description +PicoForge is a modern desktop application for configuring and managing Pico FIDO security keys. Built with Rust, Tauri, and Svelte, it provides an intuitive interface for: + +- Reading device information and firmware details +- Configuring USB VID/PID and product names +- Adjusting LED settings (GPIO, brightness, driver) +- Managing security features (secure boot, firmware locking) (WIP) +- Real-time system logging and diagnostics +- Support for multiple hardware variants and vendors + +%prep +%autosetup + +curl -fsSL https://deno.land/x/install/install.sh | sh +export DENO_INSTALL="$HOME/.deno" +export PATH="$DENO_INSTALL/bin:$PATH" +deno --version + +%build +export DENO_INSTALL="$HOME/.deno" +export PATH="$DENO_INSTALL/bin:$PATH" + +# Build the App +# This will download Rust crates and Deno modules over the internet +deno install +deno task tauri build --no-bundle + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/applications +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps + +# 1. Install Binary +install -m 755 src-tauri/target/release/picoforge %{buildroot}%{_bindir}/%{name} + +# 2. Install Desktop File +install -m 644 data/in.suyogtandel.picoforge.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop + +# 3. Install Icon (Assumes you have this icon in your source) +install -m 644 src-tauri/icons/in.suyogtandel.picoforge.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/in.suyogtandel.picoforge.svg + +%files +%{_bindir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/scalable/apps/in.suyogtandel.picoforge.svg + +%changelog +* Sat Jan 17 2026 Suyog Tandel 0.2.1-1 +- new package built with tito + +* Fri Jan 16 2026 Suyog Tandel 0.2.1-1 +- Initial release \ No newline at end of file