sfdk
Manage Salesforce DX projects and metadata
TLDR
Setup the current environment for building for SailfishOS with a specific versions and architecture target
Initialize the current directory as the build directory
Execute build steps of the RPM SPEC file for a specific project
List repositories in the SailfishOS 5.0.0.62 armv7hl build target
Deploy the package to the emulator
Display help
Display help for specific topic (building, testing, maintaining, ide, all)
Display version
SYNOPSIS
sfdk [global-options] <command> [<command-options>]
PARAMETERS
--help, -h
Display help for sfdk or specific command
--version
Print sfdk version information
--color={auto|on|off}
Control colored output
--bind-all-interfaces
Bind server to all network interfaces
--config <file>
Load additional config file
--device-config <file>
Load device-specific config
--sdk-config <file>
Load SDK config file
--user-config <dir>
Set user config directory
--ssh-config <file>
Use custom SSH config
--device <target>
Specify default target device
--tunnel
Enable SSH port tunneling
--tunnel-device <tunnel>
Specify tunnel device
--no-tunneling
Disable automatic SSH tunneling
--devel
Enable development mode (skip some checks)
DESCRIPTION
The sfdk command is the primary CLI interface for the Sailfish OS SDK, enabling developers to build, deploy, manage, and debug native applications for Sailfish OS devices and emulators.
It handles RPM package creation, target device configuration, SSH-based deployment with optional tunneling, file transfer, and remote execution. Sfdk supports multiple targets like physical devices, VirtualBox VMs, and QEMU emulators.
Key workflows include initializing projects, building RPMs with sfdk build, deploying via sfdk deploy, and running apps with sfdk run. It integrates with rpm tools for package manipulation and provides utilities for QML projects.
Sfdk streamlines cross-compilation using SDK engines (scratchbox2-based), manages repositories, and supports devel mode for faster iterations. Primarily used for Sailfish OS and derivatives like SailfishOS community ports.
CAVEATS
Requires Sailfish SDK installation and configured targets. Network access needed for device communication. Not for general Linux use; Sailfish-specific.
MAIN COMMANDS
build: Build RPMs
deploy: Deploy to target
device: List/add targets
run: Execute on device
engine: Manage SDK engines
SETUP EXAMPLE
sfdk target add --from-line "SFOS_4.4.0.72 sailfishos:4.4.0.72"
sfdk build
sfdk deploy
HISTORY
Introduced in Sailfish SDK 2.0 (2016) as successor to mb2 and scratchbox tools. Evolved with SDK releases; major updates in 3.0+ for better device support and RPM v4.


