@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2022 Olivier Dion <olivier.dion@polymtl.ca>
+;;; Copyright © 2023 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@ (define-module (gnu packages instrumentation)
#:use-module (gnu packages compression)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages cpio)
#:use-module (gnu packages elf)
#:use-module (gnu packages engineering)
#:use-module (gnu packages file)
@@ -526,3 +528,39 @@ (define-public uftrace
performance. It provides the command @command{uftrace}. User that want to do
scripting need to install python-3 or luajit in their profile.")
(license license:gpl2)))
+
+
+(define-public systemtap
+ (package
+ (name "systemtap")
+ (version "4.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://sourceware.org/ftp/systemtap/releases/" name "-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "161smpv4ajqfncmgylvs89bbix1id60nf0g7clmga2lxxax3646h"))))
+ (build-system gnu-build-system)
+ (native-inputs (list cpio python))
+ (inputs (list elfutils))
+
+ (home-page "https://sourceware.org/systemtap/")
+ (synopsis "a GNU/Linux trace/probe tool")
+ (description
+ "SystemTap provides infrastructure to simplify the
+gathering of information about the running Linux system. This assists
+diagnosis of a performance or functional problem. SystemTap eliminates the
+need for the developer to go through the tedious and disruptive
+instrument, recompile, install, and reboot sequence that may be otherwise
+required to collect data.
+
+SystemTap provides a simple command line interface and scripting language for
+writing instrumentation for a live running kernel plus user-space applications.
+We are publishing samples, as well as enlarging the internal \"tapset\" script
+library to aid reuse and abstraction. SystemTap is a tool for complex
+tasks that may require live analysis, programmable on-line response, and
+whole-system symbolic access, and can also handle simple tracing jobs.")
+ (license license:gpl2+)))
+