1 Отредактировано tony2001 (24-08-2008 00:01:21)

Тема: [howto] сборка пакетов на таблетке

Краткое описание того, как я собираю пакеты на таблетке.

Disclaimer
-----
Сразу хочу предупредить: если у вас мало места на флэшках, вы не умеете пользоваться SSH
и/или собирать софт из исходников на *nix - вам это не надо.

Данное описание не претендует на полноту или полную верность, оно из разряда "works for me".
Скорее всего, собирать пакеты на самой таблетке - это неправильно.
Но ставить SDK и т.п. мне лень, поэтому я решил пойти по короткому пути.
У меня N800 с OS2008. В OS2007 что-то может отличаться, а может и нет.
Я её видел ровно 5 минут, поскольку перепрошил таблетку сразу.

Подготовка
-----
Для начала надо поставить SSH-клиент и сервер, с ними дальше будет намного проще.
Они уже есть в пакете(ах) на maemo.org, пакет называется "openssh".
Ставьте и логиньтесь на таблетку с десктопа (ssh root@<ip address>)
Здесь, кстати, поможет wifiinfo, который показывает текущий IP-адрес таблетки.
Взять его можно тут: http://anderenen.de/repository chinook free

Очевидно, что нужен компилятор и dev-пакеты.
Выполняем в шелле от рута:
apt-get install gcc
apt-get install g++
apt-get install libc6-dev
apt-get install bzip2
apt-get install autotools-dev

Так же, вам понадобятся GNU grep & GNU tar.
Они есть у меня в репозитории (см. в самом низу).
Пакеты gtar и gnugrep.

Это небходимый минимум, далее придется ставить что-то в зависимости от того, что вы собираете.

Важный момент:
флэшки монтируются с noexec, поэтому выполнять что-то с них не получится - надо либо перемонтировать
их без этой опции, либо собирать на встроенной памяти (т.е. в домашней директории).

Собственно, на этом этапе обычные ./configure && make уже должны работать.

Сборка deb-пакета
------
После успешного окончания make, выполняем:
`make install prefix=/home/user/tmp-build/usr/local/`.

/home/user/tmp-build - это просто временная директория.
/usr/local/ - это префикс пути (./configure --prefix=<префикс>), куда будут ставиться файлы.

Это создаст /home/user/tmp-build/usr/local/ и установит все файлы пакета в эту директорию.
Скорее всего, вам надо будет удалить некоторое кол-во из этих файлов, вряд ли вам нужны хидеры и документация.

Создаём control-файл - /home/user/tmp-build/DEBIAN/control, он должен содержать примерно следующее:

Package: ftp
Section: user/internet
Priority: optional
Maintainer: John Doe <mail@example.com>
Version: 1.5
Architecture: armel
Description: minimalistic FTP client

Описание формата файла есть здесь: http://fts.ifac.cnr.it/cgi-bin/dwww?typ … -control/5 и в гугле.

Далее, в директории /home/user выполняем:
`dpkg-deb -b tmp-build ftp-1.5.deb`
в результате чего получаем пакет "ftp-1.5.deb" c теми файлами, которые были в /home/user/tmp-build на этот момент.

К сожалению, в dpkg-deb захардкожены команды tar, в частности опция --null, которая отсутствует в Busybox,
стоящем на таблетках.
Поэтому, для этого этапа требуется GNU tar.

Ставим пакет:
`dpkg -i ftp-1.5.deb`

Готово.

Репозиторий
------
Мой репозиторий тут:
http://maemo.daylessday.org/repo chinook user

Пока есть следующие пакеты (новые будут добавляться по мере необходимости):
ftp-1.5
gtar-1.19
gnugrep-2.5.3
gnubash-3.2
nmap-4.53
ping-20071127
telnet-1.5
vim-7.1
whois-1.5
unrar-3.7.8
findutils-4.2.32 (нормальный find + locate)
rx-34-kernel-modules-extrafs (поддержка ext2/ext3/reiserfs/smbfs/cifs)

Если есть предложения по пакетам - обращайтесь.

2

Re: [howto] сборка пакетов на таблетке

>Как на счёт использования официального garage.maemo.org для собранных пакетов?

Насколько я понимаю, garage - это собрание софта, а не собрание портов.
В любом случае, а смысл?

links есть в repostory.maemo.org:

# apt-cache showpkg links
Package: links
Versions:
0.99+1.00pre12-1osso(/var/lib/apt/lists/repostory.maemo.org_dists_chinook_free_binary-armel_Packages)

Reverse Depends:
  docbook-utils,links
Dependencies:
0.99+1.00pre12-1osso - libc6 (2 2.3.5-1) links-ssl (3 0.99-1.1)
Provides:
0.99+1.00pre12-1osso - www-browser

или это не тот линкс?

3

Re: [howto] сборка пакетов на таблетке

>Ну собрание портов тоже.
я не вижу где такое сказано: "This site is meant for hosting various software projects related to the maemo development platform."

>Links2 то собранный есть, но он не хилдонизирован(у него два режима, консольный и графический использующий иксы.
я пока очень слабо себе представляю процесс хилдонизации, поэтому в первую очередь могу помочь со сборкой чего-то простого/консольного.

4

Re: [howto] сборка пакетов на таблетке

tony2001 пишет:

>я не вижу где такое сказано: "This site is meant for hosting various software projects related to the maemo development platform."

"software projects related to the maemo development platform" не значит что только изначально написанные программы для Maemo smile там тот же python есть, evince и много чего портированного smile

tony2001 пишет:

>Links2 то собранный есть, но он не хилдонизирован(у него два режима, консольный и графический использующий иксы.
я пока очень слабо себе представляю процесс хилдонизации, поэтому в первую очередь могу помочь со сборкой чего-то простого/консольного.

по хилдонизации существующего ПО несколько есть статей на maemo.org. с консольными вещами как раз проблем нет. исключение могут составлять вещи вроде TOR, так как они используют специфические библиотеки и привязаны к функциональности ядра.

с хилдонизацией gtk2 софта немного, если написано на python+gtk2 еще меньше smile. с другим (gtk1, qt, fltk и так далее) будут проблемы уже hmm

Девайсы некуда складировать.

5

Re: [howto] сборка пакетов на таблетке

>"software projects related to the maemo development platform" не значит что только изначально написанные программы для Maemo
ок, я подумаю на этот счёт.
вероятно, имеет смысл создать нечто подобное http://unxutils.sourceforge.net/

>с консольными вещами как раз проблем нет.
о том и речь smile

>с хилдонизацией gtk2 софта немного
у меня пока проблемы с установкой соотв-щих devel-пакетов.
см. http://bugs.maemo.org/show_bug.cgi?id=2930

6

Re: [howto] сборка пакетов на таблетке

я бы все таки посоветовал бы не мучать так таблетку, так как нормальное окружение для сборки может занять очень много места smile
cоветую вот на это посмотреть: http://maemovmware.garage.maemo.org/
из софта будет нужен только vmware player. а внутри уже все есть smile

Девайсы некуда складировать.

7

Re: [howto] сборка пакетов на таблетке

посмотрю, спасибо.
пока просто лень что-то ставить только из-за идеологической неправильности.

8 Отредактировано tony2001 (13-02-2008 13:06:01)

Re: [howto] сборка пакетов на таблетке

Посмотрел.
Под VMWare & Qemu maemo-launcher падает сразу после старта.
Я так понимаю, что для нормальной работы требуется 32-битная ОС, которой у меня нет.
Жаль.

9

Re: [howto] сборка пакетов на таблетке

хм. странно.
дома проверю еще раз...
хостовая ОС вроде 64бита (mac os x) + vmware fusion. но имхо дело не в этом. не должно быть разницы от хостовой ОС.
проверю - сделаю новый топик с данным вопросом.

Девайсы некуда складировать.

10

Re: [howto] сборка пакетов на таблетке

tony2001 пишет:

/usr/local/ - это префикс пути (./configure --prefix=<префикс>), куда будут ставиться файлы.

А таблетка видит по умолчанию то что ставится в /usr/local/bin  ??  (пока из моих проб как будто не видит исполняемого файла туда установившегося)
И ещё, если на закладке "Проблемы" в Диспетчере приложений пишет что не может установить из-за несовместимого пакета приложений
Это означает что например? )   
Под скэтчбоксом собрался дэбпакет и установился с пом. dpkg  (на таблетке кстати тоже ставится из консоли с пом. dpkg) но хочется ж что б и в Диспетчере ставился - в чём несовместимость, в описании control гдето траблы или глубже? smile

N800(4.2008.43-7) + Kingston microSDHC 4Gb Class 4

11

Re: [howto] сборка пакетов на таблетке

>А таблетка видит по умолчанию то что ставится в /usr/local/bin  ??
>(пока из моих проб как будто не видит исполняемого файла туда установившегося)
у вас /usr/local/bin в PATH есть?
если нет - указывайте просто полный путь от корня.
или добавльте его в PATH.

>И ещё, если на закладке "Проблемы" в Диспетчере приложений пишет что не может установить
>из-за несовместимого пакета приложений Это означает что например? )   
это означает, что неправильно указана категория в control.
должно быть что-то типа "Section: user/utils", часть с "user/" - обязательна.

12

Re: [howto] сборка пакетов на таблетке

tony2001 пишет:

это означает, что неправильно указана категория в control.
должно быть что-то типа "Section: user/utils", часть с "user/" - обязательна.

Одно уточнение - 'user' нужно добавлять, если хотите, чтобы пакет был виден в списке менеджера программ. Для зависимых пакетов, например, библиотек, этого лучше не делать. Зависимости менеджер приложений вытащит из репозитория и поставит сам. И при удалении основного пакета сам удалит.
Естественно, все вышесказанное имеет смысл если ваши пакеты лежат в репозитории.

770/800/810/900

13 Отредактировано DJArty (23-08-2008 23:20:19)

Re: [howto] сборка пакетов на таблетке

Спасибо! )
Правда совершенно случайно само расфиксилось - просто взял чужой control (и там таки да - на удачу user/ был ато б морочился )
Наверно имеет смысл топикстартеру подправить пример wink
Щас запостю переподелку smile вдруг кому пригодится )

N800(4.2008.43-7) + Kingston microSDHC 4Gb Class 4

14

Re: [howto] сборка пакетов на таблетке

Я собираю из исходников Дебиана. Как - написано в Дебиан wiki.
Конечно хилдонизации нет.

Был бы у Чехова автомобиль, поворотник бы Чехов включал.
N810 (DIABLO_5.2008.43-7)

15

Re: [howto] сборка пакетов на таблетке

Уважаемыее, не могу поставить g++ и libc6-dev ругается на зависимости и сломанные пакеты:

......
Пакеты, имеющие неудовлетворённые зависимости:
g++: Зависит: g++-3.4 (>= 3.4.4cs2005q3.1-3) но он не будет установлен
......
Пакеты, имеющие неудовлетворённые зависимости:
libc6-dev: Зависит: libc6 (= 2.5.0-1osso7) но 2.5.0-1osso10 будет установлен
E: Сломанные пакеты

Как вылечить?

Samsung i9001 | Nokia N91 | Acer Aspire 5535 | Acorp W422G
Продал таблетку... Теперь жалею...

16

Re: [howto] сборка пакетов на таблетке

DarkTroll пишет:

Уважаемыее, не могу поставить g++ и libc6-dev ругается на зависимости и сломанные пакеты:

http://n8xx.com/message-22988.html

n800 diablo 5.2008.43-7

17

Re: [howto] сборка пакетов на таблетке

Я прошу прощения за такой злостный некропост, но проблема та же, что и в последнем сообщении DarkTroll. Ссылка выше не работает, что можно сделать?

n810

18

Re: [howto] сборка пакетов на таблетке

Вот правильная ссылка: http://n8xx.com/post22988.html

Если по ссылке не найдёте ответа, то покажите ваши репозитории. Возможно с ними что-то не так.

cat /etc/apt/sources.list /etc/apt/sources.list.d/*
N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

19

Re: [howto] сборка пакетов на таблетке

Нашел, заработало. Спасибо smile

n810