LinuxCommandLibrary

sfdk-engine

Analyze software composition for security vulnerabilities

TLDR

Start the build engine

$ sfdk engine start
copy

Stop the build engine
$ sfdk engine stop
copy

Show the build engine status
$ sfdk engine status
copy

Set an engine property
$ sfdk engine set [property]=[value]
copy

Show the engine properties
$ sfdk engine show
copy

Execute a command on the build engine
$ sfdk engine exec [command]
copy

Start an interactive shell on the build engine
$ sfdk engine exec
copy

SYNOPSIS

The sfdk-engine is generally not invoked directly by end-users. It runs as a background service or is launched and managed by the sfdk command-line tool.

To manage the engine via the sfdk frontend:
sfdk engine start
sfdk engine stop
sfdk engine status

When launched internally by sfdk or as a system service, its invocation might involve internal flags or configuration. A typical internal or service-level invocation might look like:
sfdk-engine --daemon --port=20000 --config=/path/to/config.xml
(Note: Direct invocation with these flags is typically for internal SDK processes or system service configurations, not common user interaction.)

PARAMETERS

--daemon
    (Internal/Service use) Runs the engine as a background daemon.

--port=
    (Internal/Service use) Specifies the TCP port for communication (default is typically 20000).

--config=
    (Internal/Service use) Specifies the path to the engine's configuration file.

--verbose
    (Internal/Debugging) Increases the verbosity of log output.

--help
    (Internal/Debugging) Displays help information for direct invocation (limited).

DESCRIPTION

The sfdk-engine is the core backend component of the Sailfish OS Software Development Kit (SDK). It operates as a daemon or background service, providing essential functionalities for developing applications for Sailfish OS. Its primary responsibilities include managing SDK targets (like virtual machines or remote devices), handling device connections (via SSH or ADB), managing build environments, and facilitating deployment processes. Users typically interact with sfdk-engine indirectly through the sfdk command-line frontend tool, which sends commands to the running engine. It handles complex operations such as toolchain setup, emulator management, and file transfers between the host development machine and the target device or emulator. It abstracts away many low-level details, allowing developers to focus on application development.

CAVEATS

  • sfdk-engine is an internal component of the Sailfish OS SDK. Direct user interaction with sfdk-engine via command-line arguments is generally not intended or supported for regular development workflows.
  • Misconfiguring or manually tampering with sfdk-engine can lead to the SDK malfunctioning or becoming unstable.
  • Its behavior and internal parameters can change with SDK updates without explicit user-facing documentation.

MANAGEMENT BY SFDK FRONTEND

The most common way to manage the sfdk-engine is through the sfdk command-line tool. Commands like sfdk engine start, sfdk engine stop, sfdk engine status, and sfdk engine restart are designed for robust control of the engine's lifecycle, ensuring proper initialization and shutdown.

COMMUNICATION PROTOCOL

The sfdk-engine typically communicates over a local TCP port (default 20000) with the sfdk frontend. This client-server architecture allows the engine to run independently in the background, serving requests from multiple sfdk instances or IDEs.

INTEGRATION WITH IDES

Development environments like Qt Creator, when configured for Sailfish OS development, also leverage sfdk-engine via the sfdk tool to manage build kits, deploy applications, and debug processes on target devices.

HISTORY

The sfdk-engine has been a fundamental part of the Sailfish OS SDK since its early iterations. It evolved alongside the SDK and the Sailfish OS itself, adapting to new development paradigms, device architectures, and operating system versions. Its purpose has consistently been to provide a stable and unified backend for managing the complex interplay between the developer's host machine and various Sailfish OS targets (emulators, virtual machines, physical devices). It abstracts the underlying build and deployment mechanisms, allowing sfdk to provide a consistent user experience regardless of the specific development setup.

SEE ALSO

sfdk(1), ssh(1), adb(1), systemctl(1)

Copied to clipboard