Скачиваем исходники Thinstation
linuxhost> wget http://optusnet.dl.sourceforge.net/sourceforge/thinstation/thinstation_src-2.2.tar.bz2
Распаковываем thinstation_src-2.2.tar.bz2
linuxhost> tar -jxvf thinstation_src-2.2.tar.bz2
Распаковываем пакет с исходниками вашей программы в директорию source
linuxhost> cd /home/<user>/compile/thinstation_src-2.2/source linuxhost> tar -jxvf название_программы.tar.bz2
Или так если архив gzip.
linuxhost> tar -zxvf название_программы.tar.gz
Копируем setup.sh из похожей программы (например из rxvt-2.6.4)
linuxhost> cd /home/<user>/compile/thinstation_src-2.2 linuxhost> cp source/rxvt-2.6.4/setup.sh source/<название_программы>/setup.sh
Отредактировать setup.sh любым удобным для вас редактором (pico, nano, mcedit или другие), изменить опции для конфигуратора (предварительно их можно посмотреть: ./configure –help)
linuxhost> cd source/<название_программы> linuxhost> pico setup.sh
Войти в среду для компиляции
linuxhost> cd /home/<user>/compile/thinstation_src-2.2 linuxhost> ./RUNME
Компилируем
linuxhost> cd source/<название_программы> linuxhost> ./setup.sh
После чего необходимо выполнить установку, make install DESTDIR=/tmp/название_программы или вручную скопировать библиотеки и исполняемые файлы. Чтобы выйти из среды для компиляции необходимо набрать exit
linuxhost> exit
Далее нужно создать пакет для конструктора в директорию thinstation-<версия>/packages скопировав исполняемые файлы и библиотеки.
Самый простой способ сделать свой собственный пакет состоит в имитировании структуры по аналогичным рабочим пакетам. Так выглядет структура стандартного пакета
package/example/dependencies
Этот файл содержит список всех других пакетов, которые должны быть включены, когда вы включаете ваш пакет Добавить свой собственный файл dependancies, base должен быть прописан в нем всегда.
base
package/example/bin
Ваши бинарные файлы должны быть здесь. package/example/etc/cmd Здесь вы ложите скрипты с командами для запуска вашего приложения. /etc/thinstation.packages или /etc/thinstation.console возможные типы: example.global (всегда необходим)
CMD_GLOBAL="example -startapp"
example.fullscreen
CMD_FULLSCREEN="example -FULLSCREEN"
example.menu
example.console
example.window
package/example/etc/console
Положите здесь пустой файл, название такое же как и у пакета, если вы хотите использовать приложение в консоли
#touch example
package/example/etc/init.d Ваш стартовый скрипт должен быть здесь (название example.init) Если у вас нет необходимости делать какие-либо специальные инициализации для вашего приложения, просто создайте символическую ссылку, названную example.init в /etc/thinstation.packages
#ln -s /etc/thinstation.packages example.init
Или вы можете создать собственную для специальной обработки
#! /bin/sh . /etc/thinstation.global # Вы можете заменить этот пакет символической ссылкой на /etc/thinstation.packages # для GUI приложений, или /etc/thinstation.console для консольных приложений # Если вы нуждаетесь в особых параметрах при инициализации пакета, # то необходимо создать отдельный скрипт, который должен будет запуститься при загрузке case "$1" in init) if ! pkg_initialized $PACKAGE; then pkg_get_root $PACKAGE # Your startup instructions go here pkg_set_init_flag $PACKAGE fi ;; console) ;; window) ;; fullscreen) ;; help) echo "Usage: $0 init" ;; *) exit 1 ;; esac exit 0
package/example/etc/rc0.d
Создать символическую ссылку на ваш стартовый сценарий S10example.init -> ../init.d/example.init. Пример:
#ln -s ../init.d/example.init S10example.init
package/example/lib
Добавляем любые дополнительные библиотеки
package/example/lib/menu
Вы можете поместить меню в Blackbox или Icewm (и значки через xtdesk), положив здесь файл с таким же названием как и ваш пакет.
package="example"; needs="vc"; title="Description"; command="pkg window example"
Ссылки на оригинальные статьи:
http://apps.sourceforge.net/mediawiki/thinstation/index.php?title=Developer:Compile http://apps.sourceforge.net/mediawiki/thinstation/index.php?title=Developer:Create_your_own_package
© 2022 nik0el