Skip to content

IGEL-Community/IGEL-OS-APP-RECIPES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IGEL-OS-APP-RECIPES



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 set Block 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.



Tutorial



Changing version in APP.JSON

      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


Build your own IGEL OS App


How to add links to /services/application_name

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

Using Pre Package Commands

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


Use prefer_btrfs file system for read / write partition

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 set prefer_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


Partition Size

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
},


Listing Systemd Targets

  • List all the systemd targets on system:
systemctl list-units --type target


About

Building Your Own IGEL OS App with igelpkg .

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •