Компиляции пакетов Thinstation Печать
Автор: Administrator   
22.04.10 15:43

Краткое руководство по компиляции своих пакетов

Скачиваем исходники 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/bin
  • package/example/etc
  • package/example/etc/cmd
  • package/example/etc/init.d
  • package/example/etc/rc5.d
  • package/example/lib
  • package/example/lib/menu
  • package/example/dependencies

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

 

оригинал: http://nixts.org/doku.php?id=info_complpkg

Последнее обновление 22.04.10 15:45