Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Отключите пожалуйста ADblock, если включен...

ТЕМА: Сборка своего пакета Thinstation 5

Сборка своего пакета Thinstation 5 14 Апр 2014 10:11 #1522

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 1224
  • Спасибо получено: 191
  • Репутация: 117

Самому писать много букав желания нет, поэтому в статье местами использованы вставки из CRUX Handbook, кстати хоть перевод и старый, но в принципе ничего не изменилось, рекомендую к прочтению, и информация с форума разработчиков Thinstation.

Для начала идём на http://crux.nu/portdb/?a=search и пытаемся найти нужный нам пакет.

Если повезло, то копируем команду загрузки (если команда начинается с httpup, вроде CRUX-овская фича, то закачивать в chroot-среде) и идём в папку ts/ports/static-source, в терминале выполняем команду и получаем папку с файлами для сборки.

Если не повезло и пакет не нашёлся, то делаем свой файл сборки Pkgfile, содержащий информацию о пакете (такую как имя, версия и т.п.) и команды, которые должны быть исполнены для сборки пакета. Ниже пример Pkgfile-а, как он должен выглядеть, для сборки утилиты grep. Добавлены некоторые комментарии.

# Название пакета. 
name=grep 
# Версия пакета. 
version=2.4.2 
# Релиз пакета. 
release=1 
# Исходник(и), используемые для сборки пакета. 
source=(ftp://ftp.ibiblio.org/pub/gnu/$name/$name-$version.tar.gz) 
# Функция build() вызывается pkgmk после того, 
# как указанные исходники распакованы. 
build() { 
# В первую очередь, переходим в каталог с распакованными исходниками. 
cd $name-$version 
# Запускаем configure скрипт с нужными аргументами. 
# В данном случае grep должен быть размещен в /usr/bin и 
# должен быть выключен NLS. 
./configure --prefix=/usr --disable-nls 
# Сборка. 
make 
# Устанавливаем файлы, но не в /usr, а в $PKG/usr с помощью переменной 
# DESTDIR. Переменная $PKG указывает на временный каталог, который 
# позже будет упакован в tar.gz-файл. Замечание: переменную 
# DESTDIR не все Makefile-ы, некоторые используют prefix, 
# другие ROOT, и т.д. Исследуйте Makefile не предмет этой возможности 
# Некоторые Makefile-ы вообще не имеют такой возможности. 
# В этом случае, необходимо их пропатчить. 
make DESTDIR=$PKG install 
# Удаляем ненужные файлы, в данном случае страницы info. 
rm -rf $PKG/usr/info
}

Подробнее...
Если кому то сайт очень помог и руки чешутся отблагодарить автора или просто поддержать проект в денежном эквиваленте - welcomе:)
карта сбербанка 5469050011994439
WM R527245406653
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 17 Апр 2014 11:00 #1526

  • sattva
  • sattva аватар
  • Не в сети
  • Новый участник
  • Сообщений: 4
  • Репутация: 0
проблема в том, что там(crux.nu/portdb/?a=search ) не актуальные версии исходников!!!
как например собрать pakage последнюю freedp из gif?
Последнее редактирование: 17 Апр 2014 11:19 от sattva.
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 17 Апр 2014 11:38 #1527

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 1224
  • Спасибо получено: 191
  • Репутация: 117
указать source= в Pkgfile
Если кому то сайт очень помог и руки чешутся отблагодарить автора или просто поддержать проект в денежном эквиваленте - welcomе:)
карта сбербанка 5469050011994439
WM R527245406653
Последнее редактирование: 17 Апр 2014 11:47 от admin.
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 11 Дек 2015 13:11 #3209

  • dementor5
  • dementor5 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 10
  • Репутация: 3
Столкнулся с проблемой - при подключении к терминальной ферме на основе 2012r2 через freerdp не было звука, при том если подключаться напрямую к серверу, звук был.
Возникла острая необходимость эту проблему побороть. Так как при подключении с виндового клиента звук был -
то, сделано предположение, что проблема во freerdp. Решил попробовать пересобрать, забегая вперед, поделюсь, что мою
проблему пересборка до последней версии freerdp решила. :)

Перерыв интернет, наткнулся на официальный форум разработчика, а в нём аналогичный вопрос, только про rdesktop.
Попробовал по аналогии с freerdp - сработало.

Вот инструкция:
1. Подключаемся при помощи putty к thinserver (сборка уважаемого admin-a для этого подходит идеально, можно то же самое сделать и с консоли на самом сервере),
2. Логинимся как root, стандартный пароль 1q2w3e4r
3. Переходим в директорию самого сборщика "cd /home/thinstation"
4. Включаем ch-root окружение "./setup-chroot"
5. Нажимаем "Q", что бы закрыть инструкцию
6. Переходим в директорию со скриптом для скачки с репозитариев freerdp (да, при установке он скачивается с офф сайта freerdp) "cd ts/ports/opt/freerdp"
7. Редактируем конфигурационный файл "Pkgfile" "nano Pkgfile"
В строке "Version меняем 1.1 на 2.0 (можно любую версию, влияет только на название нового пакета, вроде бы)
В строке "release" меняем "stable-1.1" на "master"
Сохраняем изменения (нажимаем Ctrl+C, после Y, после Enter)
8. Правим патч freerdp-1.1.0-tprdp.patch (правит всего одну строчку в исходниках, в файле /libfreerdp/common/addin.c зачем, понятия не имею :))"nano freerdp-1.1.0-tprdp.patch"
Меняем в строке, начинающейся с @@ цифры 204 на 250 (номер строки, которую ищет скрипт)
Далее удаляем целиком строку с фигурной скобкой
Ну и напоследок, во всех оставшихся строчках удаляем одну табуляцию (там две)
Сохраняем файл (к тому, что файл поправить нужно именно так, я пришёл, сравнивая файл addin.c в исходниках freerdp от версии stable-1.1 и master).
9. Далее последовательно вводим следующие команды:
"pkgmk -u -d -um" (генерируем новый mdm5 для нашего свеже-отредактированного патча)
"pkgmk -u" (пробуем собрать пакет, не соберётся, ругнувшись на отсутствующие записи в footprint, я так понял, что при обновлении это нормально)
"pkgmk -uf" (обновляем footprint)
"pkgmk -u" (повторно собираем пакет и устанавливаем в сборку)
10. Далее выходим из setup-chroot командой "exit"
11. Ну и пробуем собрать сборку командой "./setup-chroot -b"
12. Пробуем загрузиться по сети с тонкого клиента
13. Проверяем, обновился ли пакет с тонкого клиента в консоли, введя команду "xfreerdp /version"
Версия должна быть старше 1.1

Конфиг freerdp, который я использую:
SESSION_1_TITLE="Terminal Farm"
SESSION_1_TYPE=freerdp
SESSION_1_FREERDP_SERVER=rdp.domain.test
SESSION_1_FREERDP_OPTIONS="/d:domain /cert-ignore /load-balance-info:'tsv://MS Terminal Services Plugin.1.Terminal' /sound"
SESSION_1_ICON=ON
SESSION_1_AUTOSTART=off

Так же прилагаю готовые файлы, актуальные на момент написания поста к сообщению.

P.S. Учитывая то, что ветка MASTER freerdp не стабильна и постоянно обновляется, то рекомендую перед подобными экспериментами на виртуалке со сборщиком сделать Snapshot, чтобы в случае чего, можно было безболезненно откатиться.
P.S.2 В Pkgfile строку с патчем закомментировал, т.к. работает как с патчем, так и без, в общем, надо тестировать.

Это сообщение содержит прикрепленные файлы.
Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть их.

Последнее редактирование: 11 Дек 2015 13:58 от dementor5.
Администратор запретил публиковать записи гостям.
Спасибо сказали: admin

Сборка своего пакета Thinstation 5 11 Дек 2015 13:27 #3210

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 1224
  • Спасибо получено: 191
  • Репутация: 117
Так выложите сразу ещё и папку freerdp из packages, чего людям мучится. :)
Если кому то сайт очень помог и руки чешутся отблагодарить автора или просто поддержать проект в денежном эквиваленте - welcomе:)
карта сбербанка 5469050011994439
WM R527245406653
Последнее редактирование: 11 Дек 2015 13:29 от admin.
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 11 Дек 2015 17:04 #3211

  • dementor5
  • dementor5 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 10
  • Репутация: 3
К сожалению, так не получается. Попробовал в чистый thinserver скопировать содержимое packages/freerdp
и собрать тонкий клиент - при запуске freerdp вылетает ошибка:

Это изображения скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.


Что-то мне подсказывает, что обновление пакета тянет за собой кучу зависимостей,
которые раскидываются по всей кухне для сборки тонких клиентов.
Ну и если копировать, то не только содержимое packages (там скорее всего лежит просто инсталлятор, а ресурсы он собирает
по всей сборке).
Детальнее не разбирался :)
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 13 Дек 2015 18:39 #3215

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 1224
  • Спасибо получено: 191
  • Репутация: 117
Да, что-то надо разбираться, с разбегу не поехало, ну и хрен с ним...
А вместо многократного запуска pkgmk можно сначала удалить файлы mdm5 и footprint, после просто pkgmk -u.
Если кому то сайт очень помог и руки чешутся отблагодарить автора или просто поддержать проект в денежном эквиваленте - welcomе:)
карта сбербанка 5469050011994439
WM R527245406653
Последнее редактирование: 13 Дек 2015 18:41 от admin.
Администратор запретил публиковать записи гостям.

Сборка своего пакета Thinstation 5 01 Март 2016 18:15 #3546

  • dementor5
  • dementor5 аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 10
  • Репутация: 3
Сегодня, экспериментально обновляя пакет freerdp в своей сборке,
наткнулся на следующую ошибку:
"xfreerdp error while loading shared libraries libxfreerdp-client.so"
Решил проблему вводом дополнительной команды "update freerdp" после "pkgmk -u".
Администратор запретил публиковать записи гостям.
Спасибо сказали: admin