Please Note:
- The IGEL App Creator portal runs the IGEL SDK to create and sign your application for OS12
- For security requirements, the IGEL App Creator Portal only allows for debian and ubuntu official repository URLs. Use the file upload feature to add file.
- For OS 12.5.0+ need to have the app
Compatibility layer for 12.0.x apps
installed - UMS Web App - Apps Settings:
Download from UMS
and do not setBlock devices from downloading apps from the public App Portal as a fallback option
unless there is no internet access from OS 12 devices
NOTE: The IGEL SDK is not needed for creating recipes. The IGEL SDK Reference Manual provides details on files and format of files used in recipes.
-
The technical version of the app is defined in the field
version
. -
The version numbers must comply with the Semantic Versioning (SemVer) specifications
-
Version example used for IGEL OS Base OS:
base_system-12.6.0
base_system-12.6.0+1
base_system-12.6.0+2
base_system-12.6.1-0.tp.3
base_system-12.6.1-0.tp.4
base_system-12.6.1-1.rc.2
base_system-12.6.1-1.rc.3
base_system-12.7.0-0.tp.2
base_system-12.7.0-0.tp.3
- IGEL App Creator Portal – the straightforward way to secure and deploy your third-party apps to IGEL OS12
- IGEL KB: IGEL App Creator Portal
- IGEL KB: Upload and Assign Files in the IGEL UMS Web App - Classification - App signing certificate
- IGEL Community - IGEL App Creator Portal
- SPDX License List enables the efficient and reliable identification of license type
The App Creator Portal has automatic linking function that recognizes well-known folders that follow a common standard. Mostly libraries, desktop files, udev rules.
For special links, they are created via a system service file. The path to place the file is:
input/all/etc/systemd/system/appname.service
If your recipe already has a .service file in our app just add a line:
ExecStartPre=/bin/ln -sf /services/citrix_nsgclient/opt/Citrix/NSGClient /opt/Citrix/NSGClient
Otherwise create a .service file with:
[Unit]
Description=My app Service
[Service]
ExecStart=/bin/ln -sf /services/citrix_nsgclient/opt/Citrix/NSGClient /opt/Citrix/NSGClient
To enable the service create the file igel/install.sh
and add:
#!/bin/bash
enable_system_service appname.service
Pre packages commands can be placed into file igel/pre_package_commands.sh
. This can be used to create files / folders as part of the recipe.
Example, used in recipe for Topaz Systems SigPlus Pro C++ Object Library
, of using igel/pre_package_commands.sh
to make a directory and create a file.
#!/bin/bash
mkdir -p "%root%/etc/topaz"
cat <<"EOF" > "%root%/etc/topaz/topaz-init.sh"
#!/bin/bash
#set -x
#trap read debug
ACTION="app-topaz${1}"
# app path
APP_PATH="/services/topaz_sigplus_pro_c_object_library"
# output to systemlog with ID amd tag
LOGGER="logger -it ${ACTION}"
echo "Starting" | $LOGGER
# Linking files and folders on proper path
find ${APP_PATH} -printf "/%P\n" | while read DEST
do
if [ ! -z "${DEST}" -a ! -e "${DEST}" ]; then
# Remove the last slash, if it is a dir
[ -d $DEST ] && DEST=${DEST%/} | $LOGGER
if [ ! -z "${DEST}" ]; then
ln -sv "${APP_PATH}/${DEST}" "${DEST}" | $LOGGER
fi
fi
done
echo "Finished" | $LOGGER
EOF
Note: Some apps may not work with non-btrfs file system for read / write partition. Applications, like 1Password and OneDrive, use SQLite, an Open-Source database program that uses a sub-set of the SQL database descriptor language, in their application and does not work with NTFS file system.
*Update: 2 June 2025, the issue with SQLite on NTFS was with compression enabled.
- In the
app.json
file setprefer_btrfs
as the file system
"rw_partition": {
"size": "small",
"flags": [
"compressed",
"prefer_btrfs"
]
}
- Check file system used for
/services_rw/*
df -Th | grep services_rw
The partition size can be defined with the key size. The following values are possible:
- small
- medium
- large
- Exact size in KiB without quotes.
When small, medium, or large are defined, the size is calculated depending on the device's storage size.
To create a 2GB partition:
"rw_partition": {
"size": 2000000
},
- List all the systemd targets on system:
systemctl list-units --type target