Cross compilation framework to create native packages for the Synology's NAS
This report summarizes scanner evidence for SynoCommunity/spksrc, a C project with 3,213 GitHub stars. SynthScan examined 105,631 lines of code across 632 source files, recording 392 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 7.7 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 290 finding(s).
Are imports declared and package/API names verified? 30 finding(s).
Are wrappers, guards, and repeated structures necessary? 74 finding(s).
Which changes need focused human review? 392 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 392 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 69 | SYNOCOMMUNITY.GentooChroot.AppInstance.superclass.constructor.apply(this, arguments); | CODE |
| CRITICAL⚡ | spk/gentoo-chroot/src/app/gentoo-chroot.js | 93 | SYNOCOMMUNITY.GentooChroot.AppWindow.superclass.constructor.call(this, config); | CODE |
| CRITICAL⚡ | spk/gentoo-chroot/src/app/gentoo-chroot.js | 96 | SYNOCOMMUNITY.GentooChroot.AppWindow.superclass.onOpen.call(this, a); | CODE |
| CRITICAL⚡ | spk/gentoo-chroot/src/app/gentoo-chroot.js | 100 | SYNOCOMMUNITY.GentooChroot.AppWindow.superclass.onRequest.call(this, a); | CODE |
| CRITICAL⚡ | spk/gentoo-chroot/src/app/gentoo-chroot.js | 103 | if (SYNOCOMMUNITY.GentooChroot.AppWindow.superclass.onClose.apply(this, arguments)) { | CODE |
| CRITICAL⚡ | spk/gentoo-chroot/src/app/gentoo-chroot.js | 112 | var toolbar = this.mainPanel.cardPanel.layout.activeItem.getFooterToolbar(); | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 157 | SYNOCOMMUNITY.GentooChroot.MainPanel.superclass.constructor.call(this, { | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 313 | SYNOCOMMUNITY.GentooChroot.ListView.superclass.constructor.call(this, config) | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 376 | SYNOCOMMUNITY.GentooChroot.MainCardPanel.superclass.constructor.call(this, config) | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 419 | SYNOCOMMUNITY.GentooChroot.FormPanel.superclass.constructor.call(this, config); | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 517 | SYNOCOMMUNITY.GentooChroot.PanelOverview.superclass.constructor.call(this, config); | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 684 | SYNOCOMMUNITY.GentooChroot.PanelServices.superclass.constructor.call(this, config); | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 755 | SYNOCOMMUNITY.GentooChroot.ServiceEditorWindow.superclass.constructor.call(this, config); | CODE |
| CRITICAL | spk/gentoo-chroot/src/app/gentoo-chroot.js | 804 | SYNOCOMMUNITY.GentooChroot.PanelServiceEditor.superclass.constructor.call(this, config); | CODE |
| CRITICAL | spk/stockfish/src/webgui/public/lib/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | …oxy/src/haproxy-dashboard/static/js/jquery.slim.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 21 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 23 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 43 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 45 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 66 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 69 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 110 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/synocli-kernel/src/synocli-kernelmodule.sh | 116 | #------------------------------------------------ | COMMENT |
| MEDIUM | spk/homeassistant/src/service-setup.sh | 16 | # ------------------------------------------------ | COMMENT |
| MEDIUM | spk/sabnzbd/src/SabToSyno.py | 7 | #--------------------------------------- | COMMENT |
| MEDIUM | spk/octoprint/src/service-setup.sh | 9 | # ------------------------------------------------ | COMMENT |
| MEDIUM | spk/tvheadend/src/service-setup-dbg.sh | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | spk/tvheadend/src/service-setup-dbg.sh | 7 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | spk/node-exporter/src/parameters.txt | 2 | # ------------------------ | COMMENT |
| MEDIUM | spk/haproxy/src/haproxy.cfg | 42 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM | spk/haproxy/src/haproxy.cfg | 45 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | spk/haproxy/src/haproxy.cfg | 60 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | spk/haproxy/src/haproxy.cfg | 62 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | spk/haproxy/src/haproxy.cfg | 70 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | spk/haproxy/src/haproxy.cfg | 72 | # ───────────────────────────────────────────── | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 92 | # ====================================================================== | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 94 | # ====================================================================== | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 304 | #--------------------------- | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 344 | #--------------------------- | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 416 | # ----------------------------- | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 452 | # ====================================================================== | COMMENT |
| MEDIUM | cross/google-fonts/src/imagick_type_gen.pl | 454 | # ====================================================================== | COMMENT |
| MEDIUM | docs/packages/node-exporter.md | 17 | # ------------------------ | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 27 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 29 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/prepare.sh | 41 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/prepare.sh | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .github/actions/prepare.sh | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 63 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 65 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 127 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 130 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 207 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 209 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 233 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 235 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 271 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/prepare.sh | 273 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/build.sh | 24 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/build.sh | 26 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/build.sh | 32 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/build.sh | 34 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | .github/actions/build.sh | 36 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/build.sh | 63 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/build.sh | 65 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/build.sh | 101 | # =========================================================================== | COMMENT |
| MEDIUM | .github/actions/build.sh | 103 | # =========================================================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/synocli-kernel/src/synocli-kernelmodule.sh | 1 | #!/bin/bash | COMMENT |
| LOW | spk/uptime-kuma/src/service-setup.sh | 1 | # Uptime Kuma service setup | COMMENT |
| LOW | spk/bazarr/src/requirements-pure.txt | 1 | # Generated using the requirements script on June 1, 2025 | COMMENT |
| LOW | spk/python314-wheels/src/requirements-crossenv.txt | 1 | ## | COMMENT |
| LOW | spk/python314-wheels/src/requirements-crossenv.txt | 61 | # Depends: curl | COMMENT |
| LOW | spk/python314-wheels/src/requirements-abi3.txt | 1 | ## | COMMENT |
| LOW | spk/python314-wheels/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/dnscrypt-proxy/src/service-setup.sh | 1 | # shellcheck disable=SC2148 | COMMENT |
| LOW | spk/homeassistant/src/requirements-custom.txt | 1 | # Home Assistant core | COMMENT |
| LOW | spk/python311/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/python312-wheels/src/requirements-crossenv.txt | 1 | ## | COMMENT |
| LOW | spk/python312-wheels/src/requirements-crossenv.txt | 61 | # Depends: curl | COMMENT |
| LOW | spk/python312-wheels/src/requirements-abi3.txt | 1 | ## | COMMENT |
| LOW | spk/python312-wheels/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/deluge/src/requirements-crossenv.txt | 1 | # [deluge] | COMMENT |
| LOW | spk/deluge/src/requirements-crossenv.txt | 21 | # BOOST_LIBRARIES | COMMENT |
| LOW | spk/beets/src/requirements-crossenv.txt | 1 | # Generated using the requirements script on December 23, 2025 | COMMENT |
| LOW | spk/sabnzbd/src/SabToSyno.py | 1 | #!/usr/local/python3 | COMMENT |
| LOW | spk/sabnzbd/src/SabToSyno.py | 21 | # If empty, then no move | COMMENT |
| LOW | spk/python313/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/python314/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/sslh/src/example.cfg | 61 | # service: (optional) libwrap service name (see hosts_access(5)) | COMMENT |
| LOW | spk/sslh/src/example.cfg | 81 | # sni_hostnames: list of FQDN for that target. Each name can | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 41 | gists: true # clone gists too | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 361 | # you can define separate source and destination pairs, | COMMENT |
| LOW | spk/python312/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/tvheadend/src/service-setup-dbg.sh | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 1 | # For all available configuration options see: | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 21 | COMMENT | |
| LOW | spk/navidrome/src/navidrome.toml | 41 | # ImageCacheSize = "100MB" | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 61 | # Controls whether the player in the UI will animate the album cover (rotation) | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 81 | COMMENT | |
| LOW | spk/navidrome/src/navidrome.toml | 101 | # Purge missing files from database. Values: "never", "always", "full" | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 121 | # Set this to false to completely disable ALL external integrations | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 141 | # | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 161 | # Passphrase used to encrypt passwords in the DB | COMMENT |
| LOW | spk/ffsync/src/requirements-crossenv.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | spk/ffsync/src/requirements-pure.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | spk/python311-wheels/src/requirements-crossenv.txt | 1 | ## | COMMENT |
| LOW | spk/python311-wheels/src/requirements-crossenv.txt | 41 | zope.interface==8.2 | COMMENT |
| LOW | spk/python311-wheels/src/requirements-abi3.txt | 1 | ## | COMMENT |
| LOW | spk/python311-wheels/src/requirements-pure.txt | 1 | # basic default wheels | COMMENT |
| LOW | spk/node-exporter/src/parameters.txt | 1 | # node_exporter parameters | COMMENT |
| LOW | spk/haproxy/src/haproxy.cfg | 41 | COMMENT | |
| LOW | spk/haproxy/src/haproxy.cfg | 61 | # EXAMPLE: HTTPS frontend with SSL termination | COMMENT |
| LOW | spk/haproxy/src/haproxy.cfg | 81 | # backend tcp_back | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 1 | # | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 21 | # | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 41 | # | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 61 | # requires at least Erlang/OTP 23.1. | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 81 | #. | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 101 | # You can safely increase this limit when starting ejabberd. It impacts memory | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 121 | #. | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 141 | # ERLANG_NODE=ejabberd@hostname | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 161 | # | COMMENT |
| LOW | spk/ejabberd/src/ejabberdctl.cfg | 181 | # Default: $HOME/.ejabberd-modules | COMMENT |
| LOW | spk/ejabberd/src/ejabberd.yml | 1 | ### | COMMENT |
| LOW | spk/ejabberd/src/ejabberd.yml | 241 | ### mode: yaml | COMMENT |
| LOW | cross/libe_sqlite3/source/sqlite3/shell.c | 81 | #pragma warning(disable : 4210) | COMMENT |
| LOW | cross/libe_sqlite3/source/sqlite3/shell.c | 101 | # define _LARGE_FILE 1 | COMMENT |
| 115 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | spk/rutorrent/src/service-setup.sh | 161 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/nzbmegasearch/src/installer.sh | 34 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/subliminal/src/service-setup.sh | 7 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/fengoffice/src/service-setup.sh | 42 | # Define the resource file | COMMENT |
| MEDIUM | spk/duplicity/src/service-setup.sh | 9 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/borgbackup/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/gentoo-chroot/src/installer.sh | 26 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/wallabag/src/service-setup.sh | 43 | # Define the resource file | COMMENT |
| MEDIUM | spk/bazarr/src/service-setup.sh | 15 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/python314-wheels/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/headphones-custom/src/service-setup.sh | 27 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/saltpad/src/installer.sh | 35 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/python312-wheels/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/cops/src/service-setup.sh | 15 | # Create a default configuration file | COMMENT |
| MEDIUM | spk/cops/src/service-setup.sh | 55 | # Create a default configuration file | COMMENT |
| MEDIUM | spk/deluge/src/service-setup.sh | 98 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/sabnzbd/src/service-setup.sh | 18 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/headphones/src/service-setup.sh | 16 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/pyload/src/service-setup.sh | 45 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/rdiff-backup/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/mercurial/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/sslh/src/example.cfg | 1 | # This file is provided as documentation to show what is | COMMENT |
| MEDIUM | spk/transmission/src/service-setup.sh | 16 | # Create the managed folders | COMMENT |
| MEDIUM | spk/tvheadend/src/service-setup.sh | 35 | # Create a Python virtualenv and install wheel (EPG Grabber) | COMMENT |
| MEDIUM | spk/tvheadend/src/service-setup-dbg.sh | 99 | # Create a Python virtualenv and install wheel (EPG Grabber) | COMMENT |
| MEDIUM | spk/nzbget/src/service-setup.sh | 84 | # Create the config file on demand | COMMENT |
| MEDIUM | spk/flexget/src/service-setup.sh | 21 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/python311-wheels/src/service-setup.sh | 6 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/haproxy/src/service-setup.sh | 20 | # Create a Python virtualenv | COMMENT |
| MEDIUM | spk/haproxy/src/service-setup.sh | 34 | # Create a self-signed certificate for HTTPS termination | COMMENT |
| MEDIUM | spk/mantisbt/src/service-setup.sh | 42 | # Define the resource file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/fengoffice/src/service-setup.sh | 149 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/fengoffice/src/service-setup.sh | 157 | # Check if default PHP profile is selected | COMMENT |
| LOW | spk/wallabag/src/service-setup.sh | 134 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/wallabag/src/service-setup.sh | 142 | # Check if default PHP profile is selected | COMMENT |
| LOW | spk/dnscrypt-proxy/src/service-setup.sh | 41 | # Check if something is already using port 53 (typically DHCP server's dnsmasq) | COMMENT |
| LOW | spk/selfoss/src/service-setup.sh | 62 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/selfoss/src/service-setup.sh | 70 | # Check if default PHP profile is selected | COMMENT |
| LOW | spk/cops/src/service-setup.sh | 65 | # Check if the .htaccess file has been modified | COMMENT |
| LOW | spk/owncloud/src/service-setup.sh | 116 | # Check if the domain is already in the trusted domains | COMMENT |
| LOW | spk/owncloud/src/service-setup.sh | 235 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/owncloud/src/service-setup.sh | 243 | # Check if default PHP profile is selected | COMMENT |
| LOW | spk/owncloud/src/service-setup.sh | 553 | # Check if data directory inside owncloud directory and flag for restore if true | COMMENT |
| LOW | spk/owncloud/src/service-setup.sh | 616 | # Check if the subdirectory is missing from the destination | COMMENT |
| LOW | spk/sabnzbd/src/SabToSyno.py | 86 | # Check if destination folder does exist and can be written | COMMENT |
| LOW | spk/rabbitmq/src/service-setup.sh | 25 | # Check if paths differ to determine if data migration is needed | COMMENT |
| LOW | spk/pyload/src/service-setup.sh | 66 | # Set language to the DSM language | COMMENT |
| LOW | spk/metacubexd/src/service-setup.sh | 56 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/shairport-sync/src/service-setup.sh | 34 | # Check if NQPTP binary exists (AirPlay 2 build) | COMMENT |
| LOW | spk/navidrome/src/navidrome.toml | 121 | # Set this to false to completely disable ALL external integrations | COMMENT |
| LOW | spk/ffsync/src/service-setup.sh | 109 | # Check if service already exists | COMMENT |
| LOW | spk/ffsync/src/service-setup.sh | 201 | # Check if database export path is specified | COMMENT |
| LOW | spk/haproxy/src/haproxy-dashboard/log_parser.py | 69 | if " 403 " in line: # Check if the line contains " 403 " indicating a 403 status code | CODE |
| LOW | spk/haproxy/src/haproxy-dashboard/routes/main_routes.py | 65 | # Check if frontend or port already exists | COMMENT |
| LOW | spk/ejabberd/src/service-setup.sh | 50 | # Check if paths differ to determine if data migration is needed | COMMENT |
| LOW | spk/ejabberd/src/wizard/upgrade_uifile.sh | 3 | # Check if admin ACL is properly configured in existing ejabberd.yml | COMMENT |
| LOW | spk/ejabberd/src/wizard/upgrade_uifile.sh | 27 | # Check if admin section exists with user entries (not placeholder) | COMMENT |
| LOW | spk/mantisbt/src/service-setup.sh | 133 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/mantisbt/src/service-setup.sh | 141 | # Check if default PHP profile is selected | COMMENT |
| LOW | spk/phpmemcachedadmin/src/service-setup.sh | 70 | # Check if Apache is the selected back-end | COMMENT |
| LOW | spk/phpmemcachedadmin/src/service-setup.sh | 78 | # Check if default PHP profile is selected | COMMENT |
| LOW | .github/workflows/distrib-cache-maintenance.yml | 174 | # Check if a cache with this exact hash already exists to avoid duplication | COMMENT |
| LOW | .github/workflows/build.yml | 278 | # Check if a cache with this exact hash already exists to avoid duplication. | COMMENT |
| LOW | .github/workflows/build.yml | 669 | # Check if running low on disk space | COMMENT |
| LOW | .github/actions/download.sh | 34 | # Display output | COMMENT |
| LOW | .github/actions/download.sh | 41 | # Check if checksum failure occurred by looking for .wrong rename in output | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/icinga2-agent/src/service-setup.sh | 65 | # Step 1: Register host via Director Self-Service API | COMMENT |
| LOW | spk/icinga2-agent/src/service-setup.sh | 81 | # Step 2: Get signing ticket from Director | COMMENT |
| LOW | spk/beets/src/requirements-crossenv.txt | 4 | # NOTE: The following plugins were excluded due to being broken or deprecated: | COMMENT |
| LOW | spk/beets/src/requirements-pure.txt | 4 | # NOTE: The following plugins were excluded due to being broken or deprecated: | COMMENT |
| LOW⚡ | docs/user-guide/installation.md | 13 | ### Step 1: Open Package Center | COMMENT |
| LOW⚡ | docs/user-guide/installation.md | 17 | ### Step 2: Go to Settings | COMMENT |
| LOW⚡ | docs/user-guide/installation.md | 21 | ### Step 3: Add Package Source | COMMENT |
| LOW | docs/user-guide/installation.md | 34 | ### Step 4: Trust the Repository (DSM 6.x only) | COMMENT |
| LOW | docs/contributing/development-process.md | 31 | ## Step 1: Fork and Clone | COMMENT |
| LOW | docs/contributing/development-process.md | 60 | ## Step 2: Create a Branch | COMMENT |
| LOW | docs/contributing/development-process.md | 84 | ## Step 3: Make Your Changes | COMMENT |
| LOW | docs/contributing/development-process.md | 118 | ## Step 4: Commit Your Changes | COMMENT |
| LOW | docs/contributing/development-process.md | 166 | ## Step 5: Push and Create PR | COMMENT |
| LOW | docs/contributing/development-process.md | 200 | ## Step 6: Address Review Feedback | COMMENT |
| LOW | docs/contributing/development-process.md | 230 | ## Step 7: After Merge | COMMENT |
| LOW | docs/packages/vaultwarden.md | 67 | #### Step 1: Create a Certificate (if needed) | COMMENT |
| LOW | docs/packages/vaultwarden.md | 72 | #### Step 2: Create Reverse Proxy Entry | COMMENT |
| LOW | docs/packages/vaultwarden.md | 91 | #### Step 3: Enable WebSocket Support | COMMENT |
| LOW | docs/packages/vaultwarden.md | 99 | #### Step 4: Assign Certificate | COMMENT |
| LOW⚡ | docs/packages/borgmatic.md | 7 | ### Step 1 - Install the Borg Community Package | COMMENT |
| LOW⚡ | docs/packages/borgmatic.md | 16 | ### Step 2 - Create Hidden Shared Folder for Borg Config Files | COMMENT |
| LOW⚡ | docs/packages/borgmatic.md | 24 | ### Step 3 - Create your Borgmatic Config | COMMENT |
| LOW | docs/packages/borgmatic.md | 38 | ### Step 4 - Upload Private Keys (Optional) | COMMENT |
| LOW | docs/packages/borgmatic.md | 42 | ### Step 5 - Add the Backup Task | COMMENT |
| LOW | docs/packages/borgmatic.md | 56 | ### Step 6 - Manually Run the Job | COMMENT |
| LOW | docs/developer-guide/basics/first-package.md | 18 | ### Step 1: Navigate to the Package | COMMENT |
| LOW | docs/developer-guide/basics/first-package.md | 26 | ### Step 2: Build the Package | COMMENT |
| LOW | docs/developer-guide/basics/first-package.md | 42 | ### Step 3: Find the Built Package | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | spk/haproxy/src/haproxy-dashboard/log_parser.py | 111 | except Exception: | CODE |
| HIGH | …/haproxy/src/haproxy-dashboard/auth/auth_middleware.py | 21 | except (FileNotFoundError, IOError): | CODE |
| HIGH | spk/haproxy/src/haproxy-dashboard/utils/stats_utils.py | 20 | except Exception: | CODE |
| HIGH | spk/haproxy/src/haproxy-dashboard/utils/stats_utils.py | 59 | except Exception: | CODE |
| HIGH | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 183 | except FileNotFoundError: | CODE |
| HIGH | spk/haproxy/src/haproxy-dashboard/routes/edit_routes.py | 44 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | spk/itools/src/umounting.py | 0 | copyright (c) 2018 bingjing chang permission is hereby granted, free of charge, to any person obtaining a copy of this s | STRING |
| HIGH | spk/itools/src/common.py | 0 | copyright (c) 2018 bingjing chang permission is hereby granted, free of charge, to any person obtaining a copy of this s | STRING |
| HIGH | spk/itools/src/mounting.py | 0 | copyright (c) 2018 bingjing chang permission is hereby granted, free of charge, to any person obtaining a copy of this s | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/gentoo-chroot/src/app/application/auth.py | 3 | CODE | |
| LOW | spk/gentoo-chroot/src/app/application/db.py | 7 | CODE | |
| LOW | spk/gentoo-chroot/src/app/application/direct.py | 2 | CODE | |
| LOW | spk/gentoo-chroot/src/app/application/direct.py | 5 | CODE | |
| LOW | spk/gentoo-chroot/src/app/application/direct.py | 6 | CODE | |
| LOW | spk/itools/src/umounting.py | 29 | CODE | |
| LOW | spk/itools/src/umounting.py | 31 | CODE | |
| LOW | spk/itools/src/common.py | 26 | CODE | |
| LOW | spk/itools/src/common.py | 27 | CODE | |
| LOW | spk/itools/src/mounting.py | 28 | CODE | |
| LOW | spk/itools/src/mounting.py | 30 | CODE | |
| LOW | spk/itools/src/mounting.py | 32 | CODE | |
| LOW | spk/salt-master/src/app/synology.py | 2 | CODE | |
| LOW | spk/salt-master/src/app/synology.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/framework/makefile-system.md | 154 | # Rules — shared targets / orchestration, included by the entry points | COMMENT |
| MEDIUM | docs/developer-guide/basics/build-workflow.md | 42 | # At the spksrc root: repository-wide orchestration targets | COMMENT |
| MEDIUM | .github/actions/download.sh | 9 | # - The "download" target auto-orchestrates when a package has multiple (arch-specific) files. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/haproxy/src/haproxy-dashboard/log_parser.py | 4 | CODE | |
| LOW | …/haproxy/src/haproxy-dashboard/auth/auth_middleware.py | 6 | CODE | |
| LOW | spk/haproxy/src/haproxy-dashboard/utils/stats_utils.py | 8 | CODE | |
| LOW | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 10 | CODE | |
| LOW | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 23 | CODE | |
| LOW | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 36 | CODE | |
| LOW | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 159 | CODE | |
| LOW | spk/haproxy/src/haproxy-dashboard/routes/edit_routes.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/gickup/src/conf.example.yml | 9 | # if you want to get everything from your user, leave out the user parameter and just use the token. | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 54 | # if you want to get everything from your user, leave out the user parameter and just use the token. | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 90 | # if you want to get everything from your user, leave out the user parameter and just use the token. | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 121 | # if you want to get everything from your user, leave out the user parameter and just use the token. | COMMENT |
| LOW | spk/gickup/src/conf.example.yml | 197 | # if you want to get everything from your user, leave out the user parameter and just use the token. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/itools/src/umounting.py | 51 | except Exception as e: | CODE |
| LOW | spk/itools/src/common.py | 54 | except Exception as e: | CODE |
| LOW | spk/itools/src/mounting.py | 95 | except Exception as e: | CODE |
| LOW | spk/haproxy/src/haproxy-dashboard/log_parser.py | 111 | except Exception: | CODE |
| LOW | spk/haproxy/src/haproxy-dashboard/utils/stats_utils.py | 20 | except Exception: | CODE |
| LOW | spk/haproxy/src/haproxy-dashboard/utils/stats_utils.py | 59 | except Exception: | CODE |
| LOW | spk/haproxy/src/haproxy-dashboard/routes/edit_routes.py | 44 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/gentoo-chroot/src/app/application/auth.py | 11 | __all__ = ['authenticate', 'requires_auth'] | CODE |
| LOW | spk/gentoo-chroot/src/app/application/db.py | 10 | __all__ = ['Base', 'engine', 'Session', 'Service', 'setup'] | CODE |
| LOW | spk/gentoo-chroot/src/app/application/config.py | 1 | __all__ = ['env_path', 'chroottarget', 'installed'] | CODE |
| LOW | spk/gentoo-chroot/src/app/application/direct.py | 9 | __all__ = ['Base', 'Services', 'Overview'] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/icinga2-agent/src/service-setup.sh | 65 | # Step 1: Register host via Director Self-Service API | COMMENT |
| LOW | spk/icinga2-agent/src/service-setup.sh | 81 | # Step 2: Get signing ticket from Director | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | spk/gickup/src/conf.example.yml | 327 | timeformat: 2006-01-02 15:04:05 # you can use a custom time format, use https://yourbasic.org/golang/format-parse-stri | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spk/gentoo-chroot/src/app/application/direct.py | 91 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/haproxy/src/haproxy-dashboard/utils/haproxy_config.py | 159 | def count_frontends_and_backends(): | CODE |