Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mcp-server-systemd for 
openSUSE:Factory checked in at 2026-05-04 17:30:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mcp-server-systemd (Old)
 and      /work/SRC/openSUSE:Factory/.mcp-server-systemd.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mcp-server-systemd"

Mon May  4 17:30:23 2026 rev:2 rq:1350685 version:0.3.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/mcp-server-systemd/mcp-server-systemd.changes    
2026-05-04 12:51:23.216217475 +0200
+++ 
/work/SRC/openSUSE:Factory/.mcp-server-systemd.new.30200/mcp-server-systemd.changes
 2026-05-04 17:30:24.777418885 +0200
@@ -1,0 +2,6 @@
+Mon May  4 12:40:30 UTC 2026 - Christian Goll <[email protected]>
+
+- update to v0.3.4 which only added the man tool is man is 
+  available
+
+-------------------------------------------------------------------

Old:
----
  mcp-server-systemd-0.3.3.tar.gz

New:
----
  mcp-server-systemd-0.3.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mcp-server-systemd.spec ++++++
--- /var/tmp/diff_new_pack.Tt2xSz/_old  2026-05-04 17:30:25.765459338 +0200
+++ /var/tmp/diff_new_pack.Tt2xSz/_new  2026-05-04 17:30:25.769459503 +0200
@@ -17,7 +17,7 @@
 
 
 %define gitname systemd-mcp
-%define vers 0.3.3
+%define vers 0.3.4
 #%%define verssuf -preview3
 #%%define verssuf_plain %%(echo %%{verssuf} | sed 's/^-//')
 Name:           mcp-server-systemd
@@ -33,7 +33,8 @@
 BuildRequires:  libcap-progs
 BuildRequires:  polkit
 BuildRequires:  systemd-devel
-Requires:       man
+# the server now itself checks if man is available
+Recommends:      man
 Recommends:     %{name}-gatekeeper
 
 %description
@@ -51,6 +52,7 @@
 logs. The service itself listens to a socket to which is sends the file 
descriptors
 to the system log if authorized via polkit.
 
+# integrated tests checking also the man tool call, so man is needed here
 %package test
 Summary:        Test files for %{name}
 BuildArch:      noarch

++++++ mcp-server-systemd-0.3.3.tar.gz -> mcp-server-systemd-0.3.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-mcp-0.3.3/.github/workflows/release.yml 
new/systemd-mcp-0.3.4/.github/workflows/release.yml
--- old/systemd-mcp-0.3.3/.github/workflows/release.yml 2026-04-30 
16:44:30.000000000 +0200
+++ new/systemd-mcp-0.3.4/.github/workflows/release.yml 2026-05-04 
12:04:49.000000000 +0200
@@ -31,7 +31,7 @@
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         with:
-          file: ./systemd-mcp
+          file: bin/systemd-mcp
           overwrite: true
           update_latest_release: true
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-mcp-0.3.3/Makefile 
new/systemd-mcp-0.3.4/Makefile
--- old/systemd-mcp-0.3.3/Makefile      2026-04-30 16:44:30.000000000 +0200
+++ new/systemd-mcp-0.3.4/Makefile      2026-05-04 12:04:49.000000000 +0200
@@ -12,7 +12,7 @@
 POLKITDIR ?= $(DATADIR)/polkit-1/actions
 
 GO = go
-GOFLAGS = 
+GOFLAGS = -buildmode=pie
 
 .PHONY: all build test-client vendor test format lint clean dist install 
version
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-mcp-0.3.3/VERSION 
new/systemd-mcp-0.3.4/VERSION
--- old/systemd-mcp-0.3.3/VERSION       2026-04-30 16:44:30.000000000 +0200
+++ new/systemd-mcp-0.3.4/VERSION       2026-05-04 12:04:49.000000000 +0200
@@ -1 +1 @@
-0.3.3
+0.3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-mcp-0.3.3/internal/pkg/man/man.go 
new/systemd-mcp-0.3.4/internal/pkg/man/man.go
--- old/systemd-mcp-0.3.3/internal/pkg/man/man.go       2026-04-30 
16:44:30.000000000 +0200
+++ new/systemd-mcp-0.3.4/internal/pkg/man/man.go       2026-05-04 
12:04:49.000000000 +0200
@@ -161,6 +161,13 @@
 var validManName = regexp.MustCompile(`^[a-zA-Z0-9-]+$`)
 var validManSection = regexp.MustCompile(ValidManSectionPattern)
 
+// IsManAvailable checks if the man binary is available in PATH.
+// Returns true if man is found, false otherwise.
+func IsManAvailable() bool {
+       _, err := exec.LookPath("man")
+       return err == nil
+}
+
 func GetManPage(ctx context.Context, req *mcp.CallToolRequest, params 
*GetManPageParams) (*mcp.CallToolResult, any, error) {
        if params.Name == "" {
                return nil, nil, fmt.Errorf("man page name is required")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-mcp-0.3.3/systemd-mcp.go 
new/systemd-mcp-0.3.4/systemd-mcp.go
--- old/systemd-mcp-0.3.3/systemd-mcp.go        2026-04-30 16:44:30.000000000 
+0200
+++ new/systemd-mcp-0.3.4/systemd-mcp.go        2026-05-04 12:04:49.000000000 
+0200
@@ -227,25 +227,29 @@
                                        },
                                })
                        }
-                       tools = append(tools, struct {
-                               Tool     *mcp.Tool
-                               Register func(server *mcp.Server, tool 
*mcp.Tool)
-                       }{
-                               Tool: &mcp.Tool{
-                                       Title:       "Display man page",
-                                       Name:        "get_man_page",
-                                       Description: "Retrieve a man page. 
Supports filtering by section and chapters, and pagination.",
-                                       InputSchema: man.CreateManPageSchema(),
-                               },
-                               Register: func(server *mcp.Server, tool 
*mcp.Tool) {
-                                       mcp.AddTool(server, tool, func(ctx 
context.Context, req *mcp.CallToolRequest, args *man.GetManPageParams) 
(*mcp.CallToolResult, any, error) {
-                                               slog.Debug("get_man_page 
called", "args", args)
-                                               res, out, err := 
man.GetManPage(ctx, req, args)
-                                               return res, out, err
-                                       })
+                       if man.IsManAvailable() {
+                               tools = append(tools, struct {
+                                       Tool     *mcp.Tool
+                                       Register func(server *mcp.Server, tool 
*mcp.Tool)
+                               }{
+                                       Tool: &mcp.Tool{
+                                               Title:       "Display man page",
+                                               Name:        "get_man_page",
+                                               Description: "Retrieve a man 
page. Supports filtering by section and chapters, and pagination.",
+                                               InputSchema: 
man.CreateManPageSchema(),
+                                       },
+                                       Register: func(server *mcp.Server, tool 
*mcp.Tool) {
+                                               mcp.AddTool(server, tool, 
func(ctx context.Context, req *mcp.CallToolRequest, args *man.GetManPageParams) 
(*mcp.CallToolResult, any, error) {
+                                                       
slog.Debug("get_man_page called", "args", args)
+                                                       res, out, err := 
man.GetManPage(ctx, req, args)
+                                                       return res, out, err
+                                               })
+                                       },
                                },
-                       },
-                       )
+                               )
+                       } else {
+                               slog.Debug("man binary not found in PATH, 
skipping get_man_page tool")
+                       }
 
                        var allTools []string
                        for _, tool := range tools {

Reply via email to