## START: Set by rpmautospec ## (rpmautospec version 0.8.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Generated by go2rpm 1.19.0, customized for plugin subpackages %bcond check 1 # go-vendor-tools is only available on Fedora %bcond go_vendor_tools 0%{?fedora} # https://github.com/LeGambiArt/wtmcp %global goipath github.com/LeGambiArt/wtmcp Version: 0.1.5 %global tag v%{version} %gometa -L -f %global plugindir %{_libexecdir}/%{name}/plugins Name: wtmcp Release: %autorelease Summary: MCP server with language-agnostic plugin protocol # Generated by go-vendor-tools License: Apache-2.0 AND BSD-3-Clause AND GPL-3.0-only AND MIT AND MPL-2.0 URL: %{gourl} Source0: %{gosource} # Generated by go-vendor-tools Source1: %{archivename}-vendor.tar.bz2 Source2: go-vendor-tools.toml # go-localereader v0.0.1 does not include a LICENSE in go mod vendor Source3: go-localereader-LICENSE %if %{with go_vendor_tools} BuildRequires: go-vendor-tools %endif BuildRequires: jq BuildRequires: krb5-devel BuildRequires: python3-devel # Kerberos/SPNEGO auth (dlopen at runtime, optional) Requires: krb5-libs # Plugins Requires: %{name}-plugin-jira = %{version}-%{release} Requires: %{name}-plugin-confluence = %{version}-%{release} Requires: %{name}-plugin-gitlab = %{version}-%{release} Requires: %{name}-plugin-google-calendar = %{version}-%{release} Requires: %{name}-plugin-google-drive = %{version}-%{release} Requires: %{name}-plugin-google-gmail = %{version}-%{release} Requires: %{name}-plugin-testing-farm = %{version}-%{release} %description wtmcp is an MCP (Model Context Protocol) server that supports language-agnostic plugins via a JSON-lines wire protocol. Plugins can be written in any language (Python, Go, Bash, etc.) and communicate with the server over stdin/stdout. Features: - Language-agnostic plugin protocol (JSON-lines over stdin/stdout) - Auth providers: Bearer, Basic, Kerberos/SPNEGO, OAuth2 - HTTP proxy with auth injection and domain validation - In-memory cache with namespace isolation and TTL - Plugin discovery from multiple search paths # --- Plugin subpackages --- %package plugin-jira Summary: Jira plugin for wtmcp Requires: %{name} = %{version}-%{release} Requires: python3 >= 3.9 BuildArch: noarch %description plugin-jira Jira plugin providing tools for interacting with Jira Server and Jira Cloud instances. Includes search, issue management, sprint tracking, attachments, and export/cache tools. %package plugin-confluence Summary: Confluence plugin for wtmcp Requires: %{name} = %{version}-%{release} Requires: python3 >= 3.9 BuildArch: noarch %description plugin-confluence Confluence plugin providing tools for wiki page management, search, and collaboration. Supports Cloud and Server/DC with basic, bearer, and Kerberos auth. %package plugin-gitlab Summary: GitLab plugin for wtmcp Requires: %{name} = %{version}-%{release} %description plugin-gitlab GitLab plugin providing tools for commits, merge requests, pipelines, issues, and to-do items. Supports multiple GitLab instances. %package plugin-google-calendar Summary: Google Calendar plugin for wtmcp Requires: %{name} = %{version}-%{release} %description plugin-google-calendar Google Calendar plugin providing tools for event management, scheduling, and free/busy queries. %package plugin-google-drive Summary: Google Drive plugin for wtmcp Requires: %{name} = %{version}-%{release} %description plugin-google-drive Google Drive plugin providing tools for file search, metadata, and document export (text, CSV, markdown, PDF). %package plugin-google-gmail Summary: Google Gmail plugin for wtmcp Requires: %{name} = %{version}-%{release} %description plugin-google-gmail Gmail plugin providing tools for email listing, search, send, drafts, and label management. %package plugin-testing-farm Summary: Testing Farm plugin for wtmcp Requires: %{name} = %{version}-%{release} %description plugin-testing-farm Testing Farm — test execution and system reservation %prep %goprep -p1 tar -xf %{S:1} cp %{S:3} vendor/github.com/mattn/go-localereader/LICENSE %generate_buildrequires %if %{with go_vendor_tools} %go_vendor_license_buildrequires -c %{S:2} %endif %build %global gomodulesmode GO111MODULE=on # CGO required for GSSAPI/Kerberos support export CGO_ENABLED=1 %if %{with go_vendor_tools} # Build main binaries %gobuild -o %{gobuilddir}/bin/%{name} %{goipath}/cmd/%{name} %gobuild -o %{gobuilddir}/bin/%{name}ctl %{goipath}/cmd/%{name}ctl # Build Go plugin handlers for plugin in gitlab google-calendar google-drive google-gmail; do %gobuild -o %{gobuilddir}/bin/${plugin}-handler %{goipath}/plugins/${plugin}/... done %else # On RHEL, %%gobuild passes -a (force rebuild all) which exhausts process # limits in constrained mock environments. Use manual go build instead. export GOMAXPROCS=2 export GO_LDFLAGS="-X %{goipath}/version.tag=%{tag} -X %{goipath}/version=%{version}" go build -p 2 -mod=vendor -buildmode=pie \ -ldflags "${GO_LDFLAGS}" \ -o %{gobuilddir}/bin/%{name} ./cmd/%{name} go build -p 2 -mod=vendor -buildmode=pie \ -ldflags "${GO_LDFLAGS}" \ -o %{gobuilddir}/bin/%{name}ctl ./cmd/%{name}ctl for plugin in gitlab google-calendar google-drive google-gmail; do go build -p 2 -mod=vendor -buildmode=pie \ -o %{gobuilddir}/bin/${plugin}-handler ./plugins/${plugin}/... done %endif %install %if %{with go_vendor_tools} %go_vendor_license_install -c %{S:2} %endif # Main binaries install -D -m 0755 %{gobuilddir}/bin/%{name} %{buildroot}%{_bindir}/%{name} install -D -m 0755 %{gobuilddir}/bin/%{name}ctl %{buildroot}%{_bindir}/%{name}ctl # Jira plugin (Python) install -d %{buildroot}%{plugindir}/jira install -m 0644 plugins/jira/plugin.yaml %{buildroot}%{plugindir}/jira/ install -m 0755 plugins/jira/handler.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/helpers.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/tools_read.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/tools_write.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/tools_sprint.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/tools_cache.py %{buildroot}%{plugindir}/jira/ install -m 0644 plugins/jira/context.md %{buildroot}%{plugindir}/jira/ # Confluence plugin (Python) install -d %{buildroot}%{plugindir}/confluence install -m 0644 plugins/confluence/plugin.yaml %{buildroot}%{plugindir}/confluence/ install -m 0755 plugins/confluence/handler.py %{buildroot}%{plugindir}/confluence/ install -m 0644 plugins/confluence/context.md %{buildroot}%{plugindir}/confluence/ # Testing Farm plugin (Python) install -d %{buildroot}%{plugindir}/testing-farm install -m 0644 plugins/testing-farm/plugin.yaml %{buildroot}%{plugindir}/testing-farm/ install -m 0755 plugins/testing-farm/handler.py %{buildroot}%{plugindir}/testing-farm/ install -m 0644 plugins/testing-farm/context.md %{buildroot}%{plugindir}/testing-farm/ # GitLab plugin (Go binary) install -d %{buildroot}%{plugindir}/gitlab install -m 0755 %{gobuilddir}/bin/gitlab-handler %{buildroot}%{plugindir}/gitlab/handler install -m 0644 plugins/gitlab/plugin.yaml %{buildroot}%{plugindir}/gitlab/ install -m 0644 plugins/gitlab/context.md %{buildroot}%{plugindir}/gitlab/ # Google Calendar plugin (Go binary) install -d %{buildroot}%{plugindir}/google-calendar install -m 0755 %{gobuilddir}/bin/google-calendar-handler %{buildroot}%{plugindir}/google-calendar/handler install -m 0644 plugins/google-calendar/plugin.yaml %{buildroot}%{plugindir}/google-calendar/ install -m 0644 plugins/google-calendar/context.md %{buildroot}%{plugindir}/google-calendar/ # Google Drive plugin (Go binary) install -d %{buildroot}%{plugindir}/google-drive install -m 0755 %{gobuilddir}/bin/google-drive-handler %{buildroot}%{plugindir}/google-drive/handler install -m 0644 plugins/google-drive/plugin.yaml %{buildroot}%{plugindir}/google-drive/ install -m 0644 plugins/google-drive/context.md %{buildroot}%{plugindir}/google-drive/ # Google Gmail plugin (Go binary) install -d %{buildroot}%{plugindir}/google-gmail install -m 0755 %{gobuilddir}/bin/google-gmail-handler %{buildroot}%{plugindir}/google-gmail/handler install -m 0644 plugins/google-gmail/plugin.yaml %{buildroot}%{plugindir}/google-gmail/ install -m 0644 plugins/google-gmail/context.md %{buildroot}%{plugindir}/google-gmail/ # Example env files install -d %{buildroot}%{_datadir}/%{name}/env.d install -m 0644 env.d/*.env.example %{buildroot}%{_datadir}/%{name}/env.d/ %check %if %{with go_vendor_tools} %go_vendor_license_check -c %{S:2} %endif %if %{with check} export CGO_ENABLED=1 export GOMAXPROCS=2 %if %{with go_vendor_tools} %gocheck2 %else go test -p 2 -mod=vendor ./... %endif %endif %if %{with go_vendor_tools} %files -f %{go_vendor_license_filelist} %else %files %license LICENSE vendor/modules.txt %endif %doc README.md docs/plugin-guide.md %{_bindir}/%{name} %{_bindir}/%{name}ctl %dir %{_libexecdir}/%{name} %dir %{plugindir} %dir %{_datadir}/%{name} %{_datadir}/%{name}/env.d/ %files plugin-jira %{plugindir}/jira/ %files plugin-confluence %{plugindir}/confluence/ %files plugin-gitlab %{plugindir}/gitlab/ %files plugin-google-calendar %{plugindir}/google-calendar/ %files plugin-google-drive %{plugindir}/google-drive/ %files plugin-google-gmail %{plugindir}/google-gmail/ %files plugin-testing-farm %{plugindir}/testing-farm/ %changelog ## START: Generated by rpmautospec * Mon Mar 23 2026 John Doe - 0.1.5-1 - Uncommitted changes ## END: Generated by rpmautospec