From bd544c6a0879a661590f08b3fb586e895a246922 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:27:44 +0300 Subject: [PATCH 1/8] docs: add Homebrew install instructions --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 591a271..dda9f1d 100644 --- a/README.md +++ b/README.md @@ -96,14 +96,22 @@ procscope will detect missing capabilities at startup and provide actionable gui |---------|--------| | GitHub releases | Available | | `go install` | Available | -| Debian / Kali / Parrot packages | Packaging metadata maintained in-tree; not yet shipped by the distro | +| **Homebrew (macOS/Linux)** | **Available via `Mutasem-mk4/kharma` tap** | | Arch / BlackArch package | Available in BlackArch | +| Debian / Kali / Parrot packages | Packaging metadata maintained in-tree; pending distro inclusion | ## Installation Note: Running procscope usually requires `sudo` (eBPF capabilities). -### 1. Go Install +### 1. Homebrew (Recommended) + +```bash +brew tap Mutasem-mk4/kharma +brew install procscope +``` + +### 2. Go Install ```bash go install github.com/Mutasem-mk4/procscope/cmd/procscope@latest From 8602c89d047d03e5f3b8456b2d6c70567aec28a9 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:40:47 +0300 Subject: [PATCH 2/8] fix: resolve widespread syntax errors in internal packages --- internal/cli/root.go | 36 ++++++++++++++++++------------------ internal/output/bundle.go | 14 +++++++------- internal/process/tree.go | 2 +- internal/tracer/manager.go | 2 +- profile-readme | 1 + 5 files changed, 28 insertions(+), 27 deletions(-) create mode 160000 profile-readme diff --git a/internal/cli/root.go b/internal/cli/root.go index 2aa52e9..bd5ff4e 100644 --- a/internal/cli/root.go +++ b/internal/cli/root.go @@ -138,12 +138,12 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { if !opts.SkipChecks { result := caps.Check() if !result.CanProceed() { - _, _ = _, _ = _, _ = fmt.Fprintln(os.Stderr, result.Summary()) + fmt.Fprintln(os.Stderr, result.Summary()) return fmt.Errorf("privilege check failed — use --skip-checks to override (may cause load failures)") } if len(result.Warnings) > 0 { for _, w := range result.Warnings { - _, _ = _, _ = _, _ = fmt.Fprintf(os.Stderr, "⚠ %s\n", w) + fmt.Fprintf(os.Stderr, "⚠ %s\n", w) } } } @@ -188,7 +188,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { } targetPID = pids[0] if len(pids) > 1 { - _, _ = _, _ = fmt.Fprintf(os.Stderr, "⚠ Multiple processes match '%s', attaching to PID %d\n", + fmt.Fprintf(os.Stderr, "⚠ Multiple processes match '%s', attaching to PID %d\n", opts.ProcessName, targetPID) } } @@ -201,7 +201,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) go func() { <-sigCh - _, _ = _, _ = fmt.Fprintln(os.Stderr, "\n⏹ Stopping investigation...") + fmt.Fprintln(os.Stderr, "\n⏹ Stopping investigation...") cancel() }() @@ -214,14 +214,14 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { // Spin up Kubernetes watcher if requested var watcher *k8s.Watcher if opts.K8s { - _, _ = _, _ = fmt.Fprintln(os.Stderr, "🔄 Initializing Kubernetes pod metadata watcher...") + fmt.Fprintln(os.Stderr, "🔄 Initializing Kubernetes pod metadata watcher...") var err error watcher, err = k8s.NewWatcher(ctx) if err != nil { return fmt.Errorf("kubernetes initialization failed: %w", err) } correlator.SetK8sResolver(watcher) - _, _ = _, _ = fmt.Fprintln(os.Stderr, "✅ Kubernetes integration established") + fmt.Fprintln(os.Stderr, "✅ Kubernetes integration established") } // Initialize eBPF tracer @@ -256,9 +256,9 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { return fmt.Errorf("failed to resume command: %w", err) } - _, _ = _, _ = fmt.Fprintf(os.Stderr, "🔍 procscope investigation %s\n", investigationID) - _, _ = _, _ = fmt.Fprintf(os.Stderr, " Command: %s\n", commandLine) - _, _ = _, _ = fmt.Fprintf(os.Stderr, " PID: %d\n\n", targetPID) + fmt.Fprintf(os.Stderr, "🔍 procscope investigation %s\n", investigationID) + fmt.Fprintf(os.Stderr, " Command: %s\n", commandLine) + fmt.Fprintf(os.Stderr, " PID: %d\n\n", targetPID) } else { // Attach mode: track existing PID and children if err := mgr.TrackPID(targetPID); err != nil { @@ -276,9 +276,9 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { } } - _, _ = _, _ = fmt.Fprintf(os.Stderr, "🔍 procscope investigation %s\n", investigationID) - _, _ = _, _ = fmt.Fprintf(os.Stderr, " Attached to PID: %d\n", targetPID) - _, _ = _, _ = fmt.Fprintf(os.Stderr, " Press Ctrl+C to stop.\n\n") + fmt.Fprintf(os.Stderr, "🔍 procscope investigation %s\n", investigationID) + fmt.Fprintf(os.Stderr, " Attached to PID: %d\n", targetPID) + fmt.Fprintf(os.Stderr, " Press Ctrl+C to stop.\n\n") } // Set up output sinks @@ -296,7 +296,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { timeline := output.NewTimeline(colorize) if !opts.Quiet { - _, _ = _, _ = fmt.Fprintln(os.Stderr, timeline.Header()) + fmt.Fprintln(os.Stderr, timeline.Header()) } // Collect all events for bundle/summary @@ -319,7 +319,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { for evt := range correlator.Events() { // Timeline output if !opts.Quiet { - _, _ = _, _ = fmt.Fprintln(os.Stderr, timeline.RenderEvent(evt)) + fmt.Fprintln(os.Stderr, timeline.RenderEvent(evt)) } // JSONL output @@ -364,10 +364,10 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { endTime := time.Now() // Print summary stats - _, _ = _, _ = fmt.Fprintf(os.Stderr, "\n%s\n", correlator.Summary()) + fmt.Fprintf(os.Stderr, "\n%s\n", correlator.Summary()) if readerErr != nil && ctx.Err() == nil { - _, _ = _, _ = fmt.Fprintf(os.Stderr, "⚠ Event reader error: %v\n", readerErr) + fmt.Fprintf(os.Stderr, "⚠ Event reader error: %v\n", readerErr) } // Write evidence bundle @@ -390,7 +390,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { if err := bundle.Write(); err != nil { return fmt.Errorf("failed to write evidence bundle: %w", err) } - _, _ = _, _ = fmt.Fprintf(os.Stderr, "📁 Evidence bundle: %s/\n", opts.OutputDir) + fmt.Fprintf(os.Stderr, "📁 Evidence bundle: %s/\n", opts.OutputDir) } // Write standalone summary @@ -404,7 +404,7 @@ func run(cmd *cobra.Command, args []string, opts *Options) error { if err := sw.WriteToFile(opts.SummaryPath); err != nil { return fmt.Errorf("failed to write summary: %w", err) } - _, _ = _, _ = fmt.Fprintf(os.Stderr, "📝 Summary: %s\n", opts.SummaryPath) + fmt.Fprintf(os.Stderr, "📝 Summary: %s\n", opts.SummaryPath) } // Report exit code if we launched a process diff --git a/internal/output/bundle.go b/internal/output/bundle.go index 4630a37..ac25fc1 100644 --- a/internal/output/bundle.go +++ b/internal/output/bundle.go @@ -122,8 +122,8 @@ func (b *Bundle) writeEventsJSONL() error { if err != nil { continue } - _, _ = _, _ = f.Write(data) - _, _ = _, _ = f.Write([]byte("\n")) + f.Write(data) + f.Write([]byte("\n")) } return nil } @@ -137,9 +137,9 @@ func (b *Bundle) writeProcessTree() error { } defer func() { _ = f.Close() }() - _, _ = _, _ = fmt.Fprintf(f, "Process Tree — Investigation %s\n", b.Correlator.InvestigationID()) - _, _ = _, _ = fmt.Fprintf(f, "Root PID: %d\n", b.TargetPID) - _, _ = _, _ = fmt.Fprintf(f, "═══════════════════════════════════════════════════════\n\n") + fmt.Fprintf(f, "Process Tree — Investigation %s\n", b.Correlator.InvestigationID()) + fmt.Fprintf(f, "Root PID: %d\n", b.TargetPID) + fmt.Fprintf(f, "═══════════════════════════════════════════════════════\n\n") // Sort by PID for deterministic output sort.Slice(procs, func(i, j int) bool { @@ -155,9 +155,9 @@ func (b *Bundle) writeProcessTree() error { if p.Exited { status = fmt.Sprintf("exited(%d)", p.ExitCode) } - _, _ = _, _ = fmt.Fprintf(f, "%s[%d] %s — ppid=%d %s\n", indent, p.PID, p.Comm, p.PPID, status) + fmt.Fprintf(f, "%s[%d] %s — ppid=%d %s\n", indent, p.PID, p.Comm, p.PPID, status) if len(p.Args) > 0 { - _, _ = _, _ = fmt.Fprintf(f, "%s args: %v\n", indent, p.Args) + fmt.Fprintf(f, "%s args: %v\n", indent, p.Args) } } return nil diff --git a/internal/process/tree.go b/internal/process/tree.go index bb6ecd6..ceaf1c2 100644 --- a/internal/process/tree.go +++ b/internal/process/tree.go @@ -179,7 +179,7 @@ func printNode(sb *strings.Builder, node *TreeNode, prefix string, isLast bool) if node.Cmdline != "" && node.Cmdline != node.Comm { display = node.Cmdline } - _, _ = _, _ = fmt.Fprintf(sb, "%s%s[%d] %s\n", prefix, connector, node.PID, display) + fmt.Fprintf(sb, "%s%s[%d] %s\n", prefix, connector, node.PID, display) childPrefix := prefix if prefix != "" { diff --git a/internal/tracer/manager.go b/internal/tracer/manager.go index b7a71e3..e867238 100644 --- a/internal/tracer/manager.go +++ b/internal/tracer/manager.go @@ -147,7 +147,7 @@ func (m *Manager) Attach() error { if err != nil { // Non-fatal: log and continue. Some tracepoints may not be // available on all kernels. - _, _ = _, _ = fmt.Fprintf(os.Stderr, " warning: tracepoint %s/%s: %v (skipping)\n", p.group, p.name, err) + fmt.Fprintf(os.Stderr, " warning: tracepoint %s/%s: %v (skipping)\n", p.group, p.name, err) continue } m.links = append(m.links, tp) diff --git a/profile-readme b/profile-readme new file mode 160000 index 0000000..f3d3c4b --- /dev/null +++ b/profile-readme @@ -0,0 +1 @@ +Subproject commit f3d3c4b356585705683b467b07c4e7d9a3afa2c8 From f4698d871f036eb8c268a2381412ae7b8be3829f Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:44:47 +0300 Subject: [PATCH 3/8] fix: remove broken submodule and fix build for non-linux platforms --- internal/cli/root_stub.go | 9 +++++++++ profile-readme | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) delete mode 160000 profile-readme diff --git a/internal/cli/root_stub.go b/internal/cli/root_stub.go index f606f28..74f79e7 100644 --- a/internal/cli/root_stub.go +++ b/internal/cli/root_stub.go @@ -20,3 +20,12 @@ func NewRootCommand() *cobra.Command { }, } } + +// ExitError represents an error that should result in a specific exit code. +type ExitError struct { + Code int +} + +func (e *ExitError) Error() string { + return fmt.Sprintf("exit status %d", e.Code) +} diff --git a/profile-readme b/profile-readme deleted file mode 160000 index f3d3c4b..0000000 --- a/profile-readme +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f3d3c4b356585705683b467b07c4e7d9a3afa2c8 From 7e012f9cea42efd901f5508a0aadffbdcfa02721 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:28:28 +0300 Subject: [PATCH 4/8] fix: add Go 1.25 to CI matrix to satisfy branch protection requirements --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5eb667..76a691f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: ['1.26.2'] + go-version: ['1.25', '1.26.2'] steps: - uses: actions/checkout@v4 # v4.2.2 - uses: actions/setup-go@v5 # v5.3.0 From cb5612106e9f5d356ef0f425eb96fd99970c7364 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 21:28:39 +0300 Subject: [PATCH 5/8] fix: convert critical files to LF line endings for Linux compatibility --- arch/PKGBUILD | 102 ++++++++++++------------ docs/marketing/autogen/launch-v1.1.0.md | 41 ++++++++++ fix_line_endings.py | 34 ++++++++ 3 files changed, 126 insertions(+), 51 deletions(-) create mode 100644 docs/marketing/autogen/launch-v1.1.0.md create mode 100644 fix_line_endings.py diff --git a/arch/PKGBUILD b/arch/PKGBUILD index faf6760..93c7471 100644 --- a/arch/PKGBUILD +++ b/arch/PKGBUILD @@ -1,51 +1,51 @@ -# This file is part of BlackArch Linux ( https://www.blackarch.org/ ). -# See COPYING for license details. - -pkgname=procscope -pkgver=1.1.0 -pkgrel=1 -pkgdesc='Process-scoped runtime investigation tool using eBPF' -arch=('x86_64' 'aarch64') -groups=('blackarch' 'blackarch-defensive' 'blackarch-forensic') -url='https://github.com/Mutasem-mk4/procscope' -license=('MIT') -makedepends=('go>=1.26.2') -source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz") -sha512sums=('f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd') - -build() { - cd "${pkgname}-${pkgver}" - - export CGO_ENABLED=0 - export GOFLAGS="-trimpath -mod=readonly -modcacherw" - - go build \ - -ldflags "-s -w \ - -X 'github.com/Mutasem-mk4/procscope/internal/version.Version=${pkgver}' \ - -X 'github.com/Mutasem-mk4/procscope/internal/version.Commit=blackarch'" \ - -o "${pkgname}" \ - ./cmd/procscope -} - -check() { - cd "${pkgname}-${pkgver}" - - go test -short ./internal/events/... ./internal/output/... ./internal/redact/... ./internal/version/... -} - -package() { - cd "${pkgname}-${pkgver}" - - install -Dm755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}" - install -Dm644 "man/${pkgname}.1" "${pkgdir}/usr/share/man/man1/${pkgname}.1" - install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - - install -Dm644 "completions/${pkgname}.bash" \ - "${pkgdir}/usr/share/bash-completion/completions/${pkgname}" - install -Dm644 "completions/${pkgname}.zsh" \ - "${pkgdir}/usr/share/zsh/site-functions/_${pkgname}" - install -Dm644 "completions/${pkgname}.fish" \ - "${pkgdir}/usr/share/fish/vendor_completions.d/${pkgname}.fish" - - install -Dm644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}" -} +# This file is part of BlackArch Linux ( https://www.blackarch.org/ ). +# See COPYING for license details. + +pkgname=procscope +pkgver=1.1.0 +pkgrel=1 +pkgdesc='Process-scoped runtime investigation tool using eBPF' +arch=('x86_64' 'aarch64') +groups=('blackarch' 'blackarch-defensive' 'blackarch-forensic') +url='https://github.com/Mutasem-mk4/procscope' +license=('MIT') +makedepends=('go>=1.26.2') +source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz") +sha512sums=('f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd') + +build() { + cd "${pkgname}-${pkgver}" + + export CGO_ENABLED=0 + export GOFLAGS="-trimpath -mod=readonly -modcacherw" + + go build \ + -ldflags "-s -w \ + -X 'github.com/Mutasem-mk4/procscope/internal/version.Version=${pkgver}' \ + -X 'github.com/Mutasem-mk4/procscope/internal/version.Commit=blackarch'" \ + -o "${pkgname}" \ + ./cmd/procscope +} + +check() { + cd "${pkgname}-${pkgver}" + + go test -short ./internal/events/... ./internal/output/... ./internal/redact/... ./internal/version/... +} + +package() { + cd "${pkgname}-${pkgver}" + + install -Dm755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}" + install -Dm644 "man/${pkgname}.1" "${pkgdir}/usr/share/man/man1/${pkgname}.1" + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + install -Dm644 "completions/${pkgname}.bash" \ + "${pkgdir}/usr/share/bash-completion/completions/${pkgname}" + install -Dm644 "completions/${pkgname}.zsh" \ + "${pkgdir}/usr/share/zsh/site-functions/_${pkgname}" + install -Dm644 "completions/${pkgname}.fish" \ + "${pkgdir}/usr/share/fish/vendor_completions.d/${pkgname}.fish" + + install -Dm644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}" +} diff --git a/docs/marketing/autogen/launch-v1.1.0.md b/docs/marketing/autogen/launch-v1.1.0.md new file mode 100644 index 0000000..13ece87 --- /dev/null +++ b/docs/marketing/autogen/launch-v1.1.0.md @@ -0,0 +1,41 @@ +# Launch Copy Pack (v1.1.0) + +Generated: 2026-04-27 (UTC) + +## X/Twitter (single post) + +v1.1.0 of procscope is out. + +Process-scoped eBPF tracing for Linux incident response: +- trace suspicious binaries without ptrace overhead +- generate JSONL + evidence bundles + markdown reports +- ship as a single binary + +Release: https://github.com/Mutasem-mk4/procscope/releases/tag/v1.1.0 +Repo: https://github.com/Mutasem-mk4/procscope + +#eBPF #Linux #CyberSecurity #OpenSource + +## LinkedIn + +I just shipped v1.1.0 of procscope. + +procscope helps incident responders and security engineers trace what a Linux process actually did, with process-scoped eBPF visibility and low-noise outputs designed for triage. + +Highlights: +- process-tree scoped tracing +- event timeline + JSONL + evidence bundle outputs +- easy install from GitHub releases + +Release notes: https://github.com/Mutasem-mk4/procscope/releases/tag/v1.1.0 +GitHub: https://github.com/Mutasem-mk4/procscope + +## Dev.to / Blog Intro Paragraph + +Today I released v1.1.0 of procscope, a process-scoped eBPF tracer built for malware triage and incident response. Instead of collecting host-wide noise, procscope follows the specific process tree you care about and outputs investigation-ready artifacts (timeline, JSONL, bundle, and summary) you can share with your team. + +## Manual-only Channels Checklist + +- [ ] Hacker News `Show HN` post submitted +- [ ] Reddit post in relevant subreddit submitted +- [ ] Replies monitored during first 24h diff --git a/fix_line_endings.py b/fix_line_endings.py new file mode 100644 index 0000000..c0f83c9 --- /dev/null +++ b/fix_line_endings.py @@ -0,0 +1,34 @@ +import os + +def check_and_convert(file_path): + with open(file_path, 'rb') as f: + content = f.read() + + if b'\r\n' in content: + print(f"Converting {file_path} to LF...") + new_content = content.replace(b'\r\n', b'\n') + with open(file_path, 'wb') as f: + f.write(new_content) + return True + return False + +files_to_check = [ + 'arch/PKGBUILD', + 'Makefile', +] + +# Add scripts and debian files +for root, dirs, files in os.walk('.'): + if '.git' in dirs: + dirs.remove('.git') + for file in files: + if root.startswith('./scripts') or root.startswith('./debian') or file.endswith('.sh'): + files_to_check.append(os.path.join(root, file)) + +converted_count = 0 +for f in set(files_to_check): + if os.path.isfile(f): + if check_and_convert(f): + converted_count += 1 + +print(f"Total files converted: {converted_count}") From cf92c305f8a03f4f1ed1db4d29a5951f90620941 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Mon, 27 Apr 2026 21:30:37 +0300 Subject: [PATCH 6/8] fix: convert arch/.SRCINFO to LF to satisfy validation --- arch/.SRCINFO | 32 ++++++++++++++++---------------- fix_line_endings.py | 1 + 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/arch/.SRCINFO b/arch/.SRCINFO index a026ef3..d5390d8 100644 --- a/arch/.SRCINFO +++ b/arch/.SRCINFO @@ -1,16 +1,16 @@ -pkgbase = procscope - pkgdesc = Process-scoped runtime investigation tool using eBPF - pkgver = 1.1.0 - pkgrel = 1 - url = https://github.com/Mutasem-mk4/procscope - arch = x86_64 - arch = aarch64 - groups = blackarch - groups = blackarch-defensive - groups = blackarch-forensic - license = MIT - makedepends = go>=1.26.2 - source = procscope-1.1.0.tar.gz::https://github.com/Mutasem-mk4/procscope/archive/v1.1.0.tar.gz - sha512sums = f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd - -pkgname = procscope +pkgbase = procscope + pkgdesc = Process-scoped runtime investigation tool using eBPF + pkgver = 1.1.0 + pkgrel = 1 + url = https://github.com/Mutasem-mk4/procscope + arch = x86_64 + arch = aarch64 + groups = blackarch + groups = blackarch-defensive + groups = blackarch-forensic + license = MIT + makedepends = go>=1.26.2 + source = procscope-1.1.0.tar.gz::https://github.com/Mutasem-mk4/procscope/archive/v1.1.0.tar.gz + sha512sums = f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd + +pkgname = procscope diff --git a/fix_line_endings.py b/fix_line_endings.py index c0f83c9..e99e89d 100644 --- a/fix_line_endings.py +++ b/fix_line_endings.py @@ -14,6 +14,7 @@ def check_and_convert(file_path): files_to_check = [ 'arch/PKGBUILD', + 'arch/.SRCINFO', 'Makefile', ] From 1813e67d25f0b0ab99c468e5a9b615a163bf400a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 15:41:53 +0000 Subject: [PATCH 7/8] chore(deps): bump the actions-major group across 1 directory with 8 updates Bumps the actions-major group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4.2.2` | `6.0.2` | | [actions/setup-go](https://github.com/actions/setup-go) | `5.3.0` | `6.4.0` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.6.1` | `7.0.1` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `4.1.9` | `8.0.1` | | [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) | `6.1.1` | `9.2.0` | | [actions/setup-python](https://github.com/actions/setup-python) | `5.5.0` | `6.2.0` | | [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `6.4.0` | `7.2.2` | | [actions/dependency-review-action](https://github.com/actions/dependency-review-action) | `4.9.0` | `5.0.0` | Updates `actions/checkout` from 4.2.2 to 6.0.2 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...de0fac2e4500dabe0009e67214ff5f5447ce83dd) Updates `actions/setup-go` from 5.3.0 to 6.4.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/f111f3307d8850f501ac008e886eec1fd1932a34...4a3601121dd01d1626a1e23e37211e3254c1c06c) Updates `actions/upload-artifact` from 4.6.1 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a) Updates `actions/download-artifact` from 4.1.9 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/cc203385981b70ca67e1cc392babf9cc229d5806...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c) Updates `golangci/golangci-lint-action` from 6.1.1 to 9.2.0 - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/971e284b6050e8a5849b72094c50ab08da042db8...1e7e51e771db61008b38414a730f564565cf7c20) Updates `actions/setup-python` from 5.5.0 to 6.2.0 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/8d9ed9ac5c53483de85588cdf95a591a75ab9f55...a309ff8b426b58ec0e2a45f0f869d46889d02405) Updates `goreleaser/goreleaser-action` from 6.4.0 to 7.2.2 - [Release notes](https://github.com/goreleaser/goreleaser-action/releases) - [Commits](https://github.com/goreleaser/goreleaser-action/compare/e435ccd777264be153ace6237001ef4d979d3a7a...5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89) Updates `actions/dependency-review-action` from 4.9.0 to 5.0.0 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/2031cfc080254a8a887f58cffee85186f0e49e48...a1d282b36b6f3519aa1f3fc636f609c47dddb294) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: actions/setup-go dependency-version: 6.4.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: golangci/golangci-lint-action dependency-version: 9.2.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: actions/setup-python dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: goreleaser/goreleaser-action dependency-version: 7.2.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major - dependency-name: actions/dependency-review-action dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 36 ++++++++++++------------- .github/workflows/growth-automation.yml | 4 +-- .github/workflows/packaging-quality.yml | 4 +-- .github/workflows/release-preflight.yml | 4 +-- .github/workflows/release.yml | 8 +++--- .github/workflows/security-suite.yml | 10 +++---- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83ac0c3..2da8b4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: name: Generate eBPF Object runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - name: Install toolchain @@ -23,7 +23,7 @@ jobs: - name: Generate BPF run: make generate - name: Upload BPF object - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: procscope-bpf-object path: internal/tracer/procscope_bpfel.o @@ -37,12 +37,12 @@ jobs: matrix: go-version: ['1.26.2'] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: ${{ matrix.go-version }} - name: Download BPF object - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: procscope-bpf-object path: internal/tracer @@ -65,12 +65,12 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - name: golangci-lint - uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1 + uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0 continue-on-error: true with: version: v1.64.5 @@ -79,8 +79,8 @@ jobs: name: Vulnerability Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - name: Install govulncheck @@ -93,12 +93,12 @@ jobs: needs: generate-bpf runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - name: Download BPF object - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: procscope-bpf-object path: internal/tracer @@ -113,7 +113,7 @@ jobs: - name: Lint Debian Package run: lintian ./procscope_*.deb || true - name: Upload Debian Package - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: procscope-deb path: ./procscope_*.deb @@ -127,9 +127,9 @@ jobs: steps: - name: Install dependencies run: pacman -Syu --noconfirm git go nodejs - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Download BPF object - uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4.1.9 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: procscope-bpf-object path: internal/tracer @@ -139,7 +139,7 @@ jobs: chown -R builduser:builduser . su builduser -c "cd arch && makepkg -sf" - name: Upload Arch Package - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: procscope-pkg-tar-zst path: arch/*.pkg.tar.zst diff --git a/.github/workflows/growth-automation.yml b/.github/workflows/growth-automation.yml index 2798d86..d8c7f21 100644 --- a/.github/workflows/growth-automation.yml +++ b/.github/workflows/growth-automation.yml @@ -16,11 +16,11 @@ jobs: contents: write issues: write steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.11' diff --git a/.github/workflows/packaging-quality.yml b/.github/workflows/packaging-quality.yml index 60553d7..ca1eaa9 100644 --- a/.github/workflows/packaging-quality.yml +++ b/.github/workflows/packaging-quality.yml @@ -29,7 +29,7 @@ jobs: - name: Install deps run: pacman -Syu --noconfirm git go nodejs namcap - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Validate .SRCINFO is in sync run: | @@ -50,7 +50,7 @@ jobs: name: Debian metadata validation runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install packaging tools run: | diff --git a/.github/workflows/release-preflight.yml b/.github/workflows/release-preflight.yml index 6a9989c..a3fe9af 100644 --- a/.github/workflows/release-preflight.yml +++ b/.github/workflows/release-preflight.yml @@ -19,11 +19,11 @@ jobs: name: Validate release packaging consistency runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.11' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5033e19..a72b051 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,15 +15,15 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.11' @@ -32,7 +32,7 @@ jobs: python scripts/release_preflight.py --tag "${GITHUB_REF_NAME}" - name: Run GoReleaser - uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0 + uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7.2.2 with: version: '~> v2' args: release --clean diff --git a/.github/workflows/security-suite.yml b/.github/workflows/security-suite.yml index 0a1b956..da1c5ce 100644 --- a/.github/workflows/security-suite.yml +++ b/.github/workflows/security-suite.yml @@ -26,9 +26,9 @@ jobs: matrix: language: ['go'] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Go - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version: '1.26.2' - name: Initialize CodeQL @@ -52,8 +52,8 @@ jobs: contents: read pull-requests: write steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 scorecard: name: OpenSSF Scorecard @@ -65,7 +65,7 @@ jobs: contents: read actions: read steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Run analysis From 2a709e44dae455f26883575a01c303984f28be65 Mon Sep 17 00:00:00 2001 From: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> Date: Wed, 20 May 2026 18:44:32 +0300 Subject: [PATCH 8/8] fix: merge master and remove Go 1.25 from matrix --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 775c919..2da8b4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: ['1.25', '1.26.2'] + go-version: ['1.26.2'] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0