Bug 3941

Summary: Реализовать в alien копирование зависимостей в deb-пакет
Product: [Свободные проекты (Open source projects)] Korinf Reporter: Vitaly Lipatov <lav>
Component: ОбщееAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: amorozov, baraka, dkr, kondratyuk, lav
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: All   
URL: http://habrahabr.ru/qa/5885/
Whiteboard:
Заявки RT: 12332 Связано с:
Дата напоминания: 2012-09-10
Bug Depends on: 1209    
Bug Blocks: 42, 1178, 8345    
Attachments: Упомянутый alien.pl.rej

Description Vitaly Lipatov 2009-05-13 13:54:23 MSD
Сейчас rpm для целевой системы собирается, в нём транслируются зависимости, но в результирующий deb зависимости не попадают.
В alien отключен сейчас автопоиск зависимостей (потому при запуске в host-системе он не работает)
Большая проблема в том, что большая часть зависимостей оставлена на автопоиск, соответственно в rpm-пакете их не будет.
Решением выглядит изымание зависимостей из бинарной сборки для Сизифа, с последующей их трансляцией в нотацию целевой системы и добавлением в deb-пакет с помощью alien.
Таким образом, нужно:
 - получать список установочных зависимостей из бинарного пакета
 - уметь передавать в alien этот список, чтобы он его добавлял в формируемый пакет
Comment 1 Калюхович Юрий 2012-02-29 17:36:30 MSK
в скрипт alien добавил опцию --depends=<file> , из файла читается список зависимостей вида имя_пакета (>= версия) , построчно; затем в результирующий deb записываются эти зависимости. Этот метод работает, при установке проверяется установлены ли требуемые по зависимостям пакеты
Comment 2 Vitaly Lipatov 2012-03-28 12:31:53 MSK
Патч находится здесь:
/srv/goga/Projects/alien/0001-Option-for-adding-the-dependency-list-from-file.patch

Видимо, нужно собрать пакет с патчем в ALT и по возможности отправить в upstream.
Comment 3 Дмитрий Кругликов 2012-03-28 14:58:56 MSK
Created attachment 2468 [details]
Упомянутый alien.pl.rej

К версии 8.86 патч не прикладывается.
Patch #1 (0001-Option-for-adding-the-dependency-list-from-file.patch):
+ /usr/bin/patch -p2
patching file alien.pl
Hunk #4 FAILED at 380.
Hunk #5 succeeded at 397 with fuzz 2.
Hunk #6 FAILED at 502.
2 out of 6 hunks FAILED -- saving rejects to file alien.pl.rej
Comment 4 Дмитрий Кругликов 2012-03-28 15:52:01 MSK
(В ответ на comment #3)
> К версии 8.86 патч не прикладывается.
> Patch #1 (0001-Option-for-adding-the-dependency-list-from-file.patch):
Обновил версию до 8.86.
Внес изменения руками.
Собираемость проверил.
Отправляю на сборку в ALT
Comment 5 Дмитрий Кругликов 2012-03-28 16:09:04 MSK
task #67990 for sisyphus DONE
Comment 6 Vitaly Lipatov 2012-05-17 20:03:09 MSK
Как бы нам теперь связаться с апстримом и передать им патчик?
Comment 7 Дмитрий Кругликов 2012-05-17 20:28:13 MSK
(В ответ на comment #6)
> Как бы нам теперь связаться с апстримом и передать им патчик?

Можно не я?
У меня с языками тяжело...
Читать могу, писать - совсем плохо...
Comment 8 Денис Баранов 2012-06-04 19:06:57 MSK
Ubuntu 12.04 64bit
проблема с установкой зависимостей:
# dpkg -i *
Selecting previously unselected package wine-etersoft:i386.
(Чтение базы данных ... на данный момент установлено 142058 файлов и каталогов.)
Распаковывается пакет wine-etersoft:i386 (из файла wine-etersoft_2.0.2-eter3ubuntu_i386.deb)...
Selecting previously unselected package wine-etersoft-sql:i386.
Распаковывается пакет wine-etersoft-sql:i386 (из файла wine-etersoft-sql_2.0.2-eter1ubuntu_i386.deb)...
dpkg: зависимости пакетов не позволяют настроить пакет wine-etersoft:i386:
 wine-etersoft:i386 зависит от curl.
 wine-etersoft:i386 зависит от diffutils.
 wine-etersoft:i386 зависит от eject.
 wine-etersoft:i386 зависит от grep.
 wine-etersoft:i386 зависит от gzip.
 wine-etersoft:i386 зависит от less.
 wine-etersoft:i386 зависит от perl-base.
 wine-etersoft:i386 зависит от psmisc.
 wine-etersoft:i386 зависит от sed.
 wine-etersoft:i386 зависит от unzip.
 wine-etersoft:i386 зависит от x11-xserver-utils.
dpkg: не удалось обработать параметр wine-etersoft:i386 (--install):
 проблемы зависимостей -- оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет wine-etersoft-sql:i386:
 wine-etersoft-sql:i386 зависит от diffutils.
 wine-etersoft-sql:i386 зависит от gettext.
 wine-etersoft-sql:i386 зависит от grep.
 wine-etersoft-sql:i386 зависит от login.
 wine-etersoft-sql:i386 зависит от sed.
 wine-etersoft-sql:i386 зависит от wine-etersoft, однако:
  Пакет wine-etersoft:i386 пока не настроен.
dpkg: не удалось обработать параметр wine-etersoft-sql:i386 (--install):
 проблемы зависимостей -- оставляем не настроенным
Обрабатываются триггеры для ureadahead ...
Обрабатываются триггеры для man-db ...
Обрабатываются триггеры для desktop-file-utils ...
Обрабатываются триггеры для bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Обрабатываются триггеры для gnome-menus ...
При обработке следующих пакетов произошли ошибки:
 wine-etersoft:i386
 wine-etersoft-sql:i386

При попытке разрешить автоматически зависимости:
# apt-get install -f
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Исправление зависимостей… не удалось.
Пакеты, имеющие неудовлетворённые зависимости:
 wine-etersoft:i386 : Зависит: curl:i386 но он не установлен
                      Зависит: diffutils:i386 но он не установлен
                      Зависит: eject:i386 но он не установлен
                      Зависит: grep:i386 но он не установлен
                      Зависит: gzip:i386 но он не установлен
                      Зависит: less:i386 но он не установлен
                      Зависит: perl-base:i386 но он не установлен
                      Зависит: psmisc:i386 но он не установлен
                      Зависит: sed:i386 но он не установлен
                      Зависит: ttf-liberation:i386 но он не может быть установлен
                      Зависит: unzip:i386 но он не установлен
                      Зависит: x11-xserver-utils:i386 но он не установлен
 wine-etersoft-sql:i386 : Зависит: diffutils:i386 но он не установлен
                          Зависит: gettext:i386 но он не установлен
                          Зависит: grep:i386 но он не установлен
                          Зависит: login:i386 но он не установлен
                          Зависит: sed:i386 но он не установлен
E: Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это может быть вызвано отложенными (held) пакетами.
E: Невозможно скорректировать зависимости

Проверял в нашем vbox.
Comment 9 Дмитрий Кругликов 2012-06-05 20:14:12 MSK
(В ответ на comment #8)
> Ubuntu 12.04 64bit
> проблема с установкой зависимостей:
> # dpkg -i *
Перед этим хорошо бы показать ls -1... 
Дабы таким идиотам, как я, не нужно было напрягать остатки мозга и угадывать, что попадает под *...

>  wine-etersoft:i386 : Зависит: curl:i386 но он не установлен
...

Виталий, если мне не изменяет мой склероз, то в силу ущербности реализайии multilib в целевом дистрибутиве мы пытаемся устанавливать в Ubuntu 12.04 64bit
пакеты, собранные для i386... И зависимости там на *:i386 получаются.

Следовательно, попытка обмануть систему не удалась.
Comment 10 Vitaly Lipatov 2012-08-07 22:36:22 MSK
Причесал патч и отправил в upstream (автору).
http://git.etersoft.ru/people/lav/public/?p=alien.git;a=commit;h=2a912f7281bc37cc552181b71ffff2d74dabb0f7
Comment 11 Vitaly Lipatov 2012-08-08 20:17:39 MSK
Ответ:
The usual answer to this problem is that alien -s can be used to produce
a directory tree that can be further modified as desired, and built with
dpkg-buildpackage.

Всё ясно, будем делать отдельную обёртку, alien не будем менять.