Сборка программ из исходного кода с разделяющимися пакетами.

Автор ferum, 18 июля 2012, 22:39:32

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ferum

Практика показывает, что не смотря на изобилие программ в дебиановских репозиториях всегда что нибудь устаревает и становится неактуальным, либо иногда требуются приложения, требующиеся узкому кругу лиц и распространяемые только в исходных кодах, имеют так же место случаи , когда необходима пересборка пакетов программ с добавлением новых плагинов или наложением патчей. Конечно в большинстве случаев возможна установка таких программ через make install, но бывают ситуации когда желательно использовать пакеты на других машинах.
Для примера можно взять приложение pidgin собственно говоря одна из линуховых асек , у которой есть свои поклонники. Проблема возникала помнится из за изменений в протоколе icq , на которые разработчики программы реагировали весьма оперативно, а вот изменений в репозиториях приходилось ждать месяцами.
Собственно говоря для установки нужны 3 пакета pidgin, pidgin-data, pidgin-libnotify их мы и должны получить присборке из исходного кода.
Поиск в гугле дал следующие результаты http://www.xaker.name/forvb/showthread.php?t=14135 немного доработаная версия http://forum.ubuntu.ru/index.php?topic=11609.0
собственно так и делаем, правда pidgin последней версии просит много новых библиотек для сборки но вот ./configure --prefix=/usr && make прошли успешно. Вопрос как быть дальше? Помним что пытаемся собрать сразу несколько пакетов....
$ dh_make
по логике нужно указать m ?
с debian/control в общих чертах понятно, можно поштудировать спек файл, хоть он и для сборки рпм, а вот с debian/rules лично мне совершенно не ясно , генерируется он стандартным
Открыть содержимое (спойлер)
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
#
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets  by Bill Allombert 2001

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This has to be exported to make some magic below work.
export DH_OPTIONS


%:
   dh $@
[свернуть]
и с ним или собирается пустой пакет, либо процесс останавливается с ошибками
Нашёл мануал http://www.debian.org/doc/manuals/maint-guide/
очень много всего написано, но честно говоря совершенно непонятно.
У бедительная просьба, если есть на форуме профессиональные сборщики или хотя бы те, кто самостоятельно разобрался популярно разжевать что куда и за чем. За ранее спасибо.
Русские дебианщики против цифрового слабоумия !

Brainey

Цитата: ferum от 18 июля 2012, 22:39:32Для примера можно взять приложение pidgin собственно говоря одна из линуховых асек
Один из мультипротокольных кроссплатформенных im-клиентов. //fixed.
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru

Malaheenee

#2
Мы бэкпортами баловались, причем именно Пиджина. Так что гляньте debian/control в источниках (apt-get source package-name=VERSION).
Если какие-то версии библиотек требуются поновее - соберите (сбэкпортите) сначала их, установите и приступайте к Пиджину. Нам так пришлось собирать сначала libgadu. Также нужно было поправить в секции Build-Depends network-manager-dev и libltdl-dev.

З.Ы. А чем Пиджин из бэкпортов не устраивает?
Все мы где-то, когда-то и в чем-то были новичками.

ferum

Цитата: Malaheenee от 20 июля 2012, 08:21:34А чем Пиджин из бэкпортов не устраивает?
Собственно программа была приведена исключительно для примера, а бэкпортирование я давно и достаточно успешно освоил. в частности пособирал интересные для себя разработки и убунтовских ppa. Таких версий приложений кстати нет и не когда не будет в официальных репозиториях не debian не ubuntu. Проще говоря мне интересна деятельность девелоперов. Люди делают пусть и не всегда прямые, но очень интересные вещи.
К слову говоря в соответствующей теме неоднократно писали, что в убунтовских ppa зачастую бывают порушены зависимости, и это правда чистой воды. Удивительно но на стабильном релизе дебиан можно сбекпортировать приложение, которое уже не ставится на ubuntu ( из за сломаных зависимостей), используя родные библиотеки debian , а так же бэкпорты отдельных библиотек ubuntu из его разных релизов, в частности от 10.04 ,10.10, 11.04. При этом приложение работает даже стабильнее, чем если бы оно было установлено на ubuntu из соответствующего ppa.
На сегодняшний день меня интересуют для сборки некоторые плагины к уже имеющимся программам., а если уточнить то есть  такая прога VDR и мне хочется собрать для него vdr-plugin-ffnetdev для стриминга на VLC плейер , а принцип сборки таков, что исходники плагина, добавляются в /PLUGINS исходников VDR и в принципе через make install устанавливается без особых проблем, но мне нужен deb пакет, checkinstall в данной ситуации не прокатывает, заимствование /debian/rules из сырцов с убунтовского ppa приводит к сборке с ошибками и на выходе пакета из за которого вся затея не получается ::)
Русские дебианщики против цифрового слабоумия !

Malaheenee

И какие ошибки вываливает? Все решается :) Мы в свое время помучились с локализациями Iceweasel серии 3.6, но ничего, разобрались с довольно-таки хитрым debian/rules, исправив строки, приводившие к ошибкам :)
А вообще, смысл нашего поста сводился к тому, что глянув на файл rules аналогичного пакета, можно написать и свой. Синтаксис там самый обычный, bash/sh.
Все мы где-то, когда-то и в чем-то были новичками.