Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 8345 - Внести в korinf передачу списка зависимостей в alien   Make a simular bug
Summary: Внести в korinf передачу списка зависимостей в alien
Status: CLOSED FIXED
Alias: None
Product: Korinf
Classification: Свободные проекты (Open source projects)
Component: Общее (show other bugs)
Version: не указана
Hardware: PC All
: P5 minor
Target Milestone: ---
Assignee: Vitaly Lipatov
QA Contact: Konstantin Artyushkin
URL:
Whiteboard:
Keywords:
Depends on: 3941
Blocks: 10857 10892 10896
  Show dependency treegraph
 
In work:
Reported: 2012-03-28 12:30 MSK by Vitaly Lipatov
Modified: 2015-11-09 17:08 MSK (History)
1 user (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2012-03-28 12:30:06 MSK
На настоящий момент korinf генерирует deb-пакеты без зависимостей.

В задаче 3941 в alien добавлен параметр --depends, которым можно передать список зависимостей пакета.

Предлагается сделать примерно следующее:
1. Добавить создание списка зависимостей для пакета (думаю, при сборке пакета в Сизиф), с сохранением в файл.
2. При сборке deb-пакета 
2.1. Конвертировать зависимости для целевой системы (подобное уже реализовано в rpmbph)
2.2. Вызывать alien, указывая файл с зависимостями.

Проверка результата: Установка wine-vanilla в минимальную свежеустановленную Ubuntu x86_64 должна давать работающий
$ wine notepad
Comment 1 Дмитрий Кругликов 2012-03-29 20:47:53 MSK
(В ответ на comment #0)

> 1. Добавить создание списка зависимостей для пакета (думаю, при сборке пакета в
> Сизиф), с сохранением в файл.
> 2. При сборке deb-пакета 
> 2.1. Конвертировать зависимости для целевой системы (подобное уже реализовано в
> rpmbph)

Черновой вариант создания списка зависимостей и конвертора готов.
Нужно обновить alien из Сизифа.

Дайте права на builder/
Comment 2 Дмитрий Кругликов 2012-03-30 10:08:15 MSK
По рекомендации TIME@ указал первоначальную оценку времени на решение задачи.
Время весьма "с потолка".
Текущее состояние задачи на уровне 40-45%.
Comment 3 Дмитрий Кругликов 2012-03-30 10:12:20 MSK
Опять же, по рекомендации TIME@ указал "среднепотолочное" значение в поле "Осталось".
Comment 4 Дмитрий Кругликов 2012-03-30 12:49:04 MSK
В git dkr черновые наброски кода для передачи списка зависимостей для alien.
Код закомментирован пока, так как нуждается в ревизии состороны знающего korinf.

В силу того, что в функцию run_alien вставлена проверка возможностей alien, без обновления alien до текущей версии работать не будет !
В Сизифе alien обновлен до нужного состояния.

Прошу обновить версию на builder (builder64) или дать мне достаточно полномочий.
Comment 5 Vitaly Lipatov 2012-05-15 15:46:21 MSK
Доделал и проверил, дополнив тестом, функциональность по трансляции зависимостей при сборке.
Comment 6 Vitaly Lipatov 2012-05-15 17:11:36 MSK
Схема получилась следующая:
1. После сборки бинарных пакетов для ALTLinux/Sisyphus для каждого пакета с помощью функции trans_rpmdeps_to_pkgname (преобразующей rpm-зависимости вида libNAME.so.X в названия пакетов с помощью локального apt-get) создаём список зависимостей (в ALTLinux/Sisyphus/log/NAME.rpm.depends)
2. При сборке deb-пакета обращаемся за списком rpm.depends и с помощью  convert_deplist создаём из него список зависимостей для конкретной платформы.
3. Передаём список зависимостей в alien, который создаёт непосредственно deb-пакет.

Слабые места:
1. Использование apt-get
2. Зависимость от системы на сборочнице (нужно использовать всегда обновлённую до Сизифа).
Comment 7 Vitaly Lipatov 2012-08-07 23:58:45 MSK
Генерация зависимостей сделана, конвертация тоже, пакеты собираются, проверка добавлена, всё проверено, закрываю.
Comment 8 Vitaly Lipatov 2012-08-08 20:19:35 MSK
Ответ разработчика alien:
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.

Нужно выделить конвертацию deb отдельно, чтобы разрешить промежуточный каталог и задействовать dpkg-buildpackage.
Comment 9 Vitaly Lipatov 2013-08-01 21:44:43 MSK
Итак, нужно переделать ту часть, которая вызывает alien:
1. Усложнить код, вызывая alien -s, разворачивая во временном каталоге структуру пакета, далее вносим изменения в список зависимостей и заворачиваем пакет обратно с помощью dpkg-buildpackage.
2. Убрать проверку на необходимую функциональность alien (его версию).

Подробности можно пытаться найти в нынешнем alien, в который мы добавили параметр для передачи зависимостей. Сейчас мы хотим от этого параметра отказаться.
Comment 10 Vitaly Lipatov 2015-10-13 01:06:16 MSK
Одновременно нужно перести конвертацию для dpkg в целевую систему, чтобы решить проблему с разными форматами сжатия.
Comment 11 Vitaly Lipatov 2015-11-05 11:20:59 MSK
(Ответ Vitaly Lipatov на комментарий9)
> Итак, нужно переделать ту часть, которая вызывает alien:
> 1. Усложнить код, вызывая alien -s, разворачивая во временном каталоге
> структуру пакета, далее вносим изменения в список зависимостей и
> заворачиваем пакет обратно с помощью dpkg-buildpackage.
Сборка более успешно происходит с помощью
fakeroot debian/rules binary

При этом alien и сборку нужно вызывать в целевой системе с целью исключить расхождение версий.
Comment 12 Vitaly Lipatov 2015-11-05 13:36:33 MSK
(Ответ Vitaly Lipatov на комментарий10)
> Одновременно нужно перести конвертацию для dpkg в целевую систему, чтобы
> решить проблему с разными форматами сжатия.
Конвертацию перенёс:
commit ce380117a7348a17363fa06c4a6ee6753496386e
Author: Vitaly Lipatov <lav@etersoft.ru>
Date:   Thu Nov 5 13:34:54 2015 +0300

    switch to convert deb packages via target system alien (eterbug #8345)
Comment 13 Vitaly Lipatov 2015-11-05 15:39:18 MSK
Сделал добавление зависимостей:
commit bcaf5b96e129b33cf82d40d82b3549afddf1ee35
Author: Vitaly Lipatov <lav@etersoft.ru>
Date:   Thu Nov 5 15:22:01 2015 +0300

    convert/deb: run script per every package

Нужно проверить:

Проверка результата: Установка wine-vanilla в минимальную свежеустановленную Ubuntu x86_64 должна давать работающий
$ wine notepad
Comment 14 Konstantin Artyushkin 2015-11-05 16:56:34 MSK
Собрал. Но выяснил ужасную вещь - у нас нету образа Ubuntu 14.04 "Новая".
Поскольку, подозреваю, что ставил их я - прошу меня извинить. 

Зато есть 15.04 - "новая"
Comment 15 Vitaly Lipatov 2015-11-05 22:46:20 MSK
(Ответ Konstantin Artyushkin на комментарий14)
> Собрал. Но выяснил ужасную вещь - у нас нету образа Ubuntu 14.04 "Новая".
> Поскольку, подозреваю, что ставил их я - прошу меня извинить. 
> 
> Зато есть 15.04 - "новая"
Ну так всё равно на чём проверять.
Comment 16 Konstantin Artyushkin 2015-11-06 15:54:04 MSK
(Ответ Vitaly Lipatov на комментарий15)

> > Зато есть 15.04 - "новая"
> Ну так всё равно на чём проверять.

ждём решения https://bugs.etersoft.ru/show_bug.cgi?id=10896
Comment 17 Konstantin Artyushkin 2015-11-09 17:08:48 MSK
Проверил все пакеты vanilla :

$ cat /etc/*rele*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.04
DISTRIB_CODENAME=vivid
DISTRIB_DESCRIPTION="Ubuntu 15.04"

$ uname -m
x86_64

$epmqp wine
libwine-vanilla-1.7.54-eter1ubuntu
libwine-vanilla-gl-1.7.54-eter1ubuntu
libwine-vanilla-twain-1.7.54-eter1ubuntu
wine-gecko-2.40-eter1ubuntu
wine-vanilla-1.7.54-eter1ubuntu

Установились по стандартной схеме : dpkg - i * ; apt-get install -f ; dpkg -i *

============
wine notepad и winecfg запустились без проблем

Закрываю