RPMSpec · 3434 bytes Raw Blame History
1 Name: gitswitcher
2 Version: 1.3.1
3 Release: 1%{?dist}
4 Summary: Secure Git identity and SSH/GPG key management tool for seamless account switching
5
6 License: GPL-3.0
7 URL: https://github.com/tenseleyFlow/gitswitchC
8 Source0: %{name}-%{version}.tar.gz
9
10 # BuildArch is not specified to allow building on all architectures including aarch64
11 BuildRequires: gcc
12 BuildRequires: make
13 BuildRequires: openssl-devel
14
15 %global debug_package %{nil}
16 Requires: git
17 Requires: openssh-clients
18 Requires: openssl
19
20 %description
21 gitswitcher is a secure Git identity and SSH/GPG key management tool that enables
22 seamless switching between multiple Git accounts with complete environment isolation.
23 Built for developers working with multiple identities, it provides robust security
24 hardening to prevent credential leakage between accounts.
25
26 This is a standalone tool, not related to the existing gitswitch package.
27
28 Features:
29 - Secure Git identity management
30 - Complete SSH key isolation per account
31 - GPG environment separation and management
32 - Configuration validation and health checking
33 - Interactive account management interface
34 - Security-focused design with comprehensive hardening
35
36 %prep
37 %autosetup
38
39 %build
40 # Build release version with security hardening. Pass VERSION explicitly so
41 # the binary reports the RPM version even when .git isn't present in %{_builddir}.
42 make BUILD_TYPE=release VERSION=%{version} COMMIT=rpm %{?_smp_mflags}
43
44 %install
45 # Install to buildroot
46 make install DESTDIR=%{buildroot}
47
48 # Install documentation
49 install -d %{buildroot}%{_docdir}/%{name}
50 install -m 644 README.md %{buildroot}%{_docdir}/%{name}/
51
52 %files
53 /usr/local/bin/gitswitch
54 %{_docdir}/%{name}/README.md
55
56 %changelog
57 * Thu Apr 16 2026 mfw <espadonne@outlook.com> - 1.3.1-1
58 - Fix: version string resolves to the tagged release when built from a source tarball (no .git) via new VERSION file fallback in the Makefile.
59 - Build: RPM spec now passes VERSION=%{version} explicitly.
60
61 * Thu Apr 16 2026 mfw <espadonne@outlook.com> - 1.3.0-1
62 - Feature: `gitswitch init <shell>` subcommand emits SSH_AUTH_SOCK wiring for fish/bash/zsh/sh/dash/ksh
63 - Feature: `--ssh-agent-info` compat alias auto-detects shell from $SHELL for Python-era rc files
64 - Fix: silence spurious "Failed to get terminal size" stderr when stdout is piped/command-substituted
65
66 * Tue Jan 07 2026 mfw <espadonne@outlook.com> - 1.1.9-1
67 - Fix: Use WARNING log level for release builds (was INFO)
68 - Fix: Silence error logs for missing optional config fields
69 - Fix: Improve SSH connection testing for git hosting services
70 - Feature: Persistent SSH agents with session state tracking
71 - Fix: Account detection from SSH socket symlinks
72 - Fix: Version stamping from git tags for tarball builds
73 - Multi-architecture support (aarch64, x86_64, etc.)
74
75 * Thu Sep 12 2024 mfw <espadonne@outlook.com> - 1.0.2-1
76 - Clean production build with zero compiler warnings
77 - Eliminated hundreds of variadic macro warnings from release builds
78 - Maintained pedantic warnings for development builds
79 - Production-ready build for AUR and RPM distribution
80
81 * Thu Sep 12 2024 mfw <espadonne@outlook.com> - 1.0.1-1
82 - Initial RPM release for gitswitcher
83 - Renamed from gitswitch to avoid confusion with existing unrelated package
84 - C implementation with security hardening
85 - Complete SSH and GPG isolation features
86 - Compiler warning fixes and production-ready build