Bug 1003

Summary: Для ArchLinux надо добавить файлы в пакет
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: ОбщееAssignee: Юрий Филь <yurifil>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P2 CC: boris, kondratyuk, pav, yurifil
Version: 1.0.8   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 1217, 2316    
Attachments: скрипт wine
wine.outformat

Description Vitaly Lipatov 2007-12-22 02:13:35 MSK
ArchLinux предполагает наличие файлов
.PKGINFO и .FILELIST в пакете.
Думаю, их должен делать alien, обладая специальной поддержкой
pacman.
Comment 1 Юрий Филь 2008-09-08 17:34:26 MSD
.PKGINFO генерируется утилитой makepkg при построении пакета с помощью PKGBUILD.
Как делать их с помощью pacman'а и alien'а - не понимаю.
Я сделал пакет дял Archa'a руками. Для получения .FILELIST написал скрипт. Есть файл .PKGINFO, но непонятно, как получить для него параметр size.
Пока нету ArchLinux'a с рабочим pacman'ом, чтобы проверять, ставится ли пакет локально.
Comment 2 Vitaly Lipatov 2008-09-08 18:15:51 MSD
(In reply to comment #1)
> .PKGINFO генерируется утилитой makepkg при
> построении пакета с помощью PKGBUILD.
> Как делать их с помощью pacman'а и alien'а - не
> понимаю.
Да, вручную, а как ещё.

> Я сделал пакет дял Archa'a руками. Для
> получения .FILELIST написал скрипт. Есть файл
> .PKGINFO, но непонятно, как получить для него
> параметр size.
Ну так надо на примере какого-то пакета понять что есть size, и насколько он важен. Мне кажется это распакованный размер.


Comment 3 Юрий Филь 2008-09-08 18:30:45 MSD
>Ну так надо на примере какого-то пакета
>понять что есть size, и насколько он важен.
>Мне кажется это распакованный размер.

В том то и дело, что непонятно, что это такое.
делал так:
[root@builder pkgdata]# tar xvf ../pkgdata-0.61.1-1.pkg.tar.gz 
[root@builder pkgdata]# du -sk | awk '{print $1 * 1024}'
15192064
И так:
[root@builder ~]# du -sk pkgdata-0.61.1-1.pkg.tar.gz | awk '{print $1 * 1024}'
4317184

В .PKGINFO:
size = 4900175

du -sk | awk '{print $1 * 1024}' взял из скрпита makepkg.

Важность его и хочу выяснить, попробовав поставить локально пакет pacman'ом. Но в чруте pacman нерабочий.
Comment 4 Юрий Филь 2008-09-09 16:46:09 MSD
Ставится и без size. Но в базе pacman'а его нет.

Так выглядит мой .PKGINFO:
# Generated by makepkg 3.0.3
# Wed Sep 19 20:48:49 CEST 2007
pkgname = wine
pkgver = 1.0.8
pkgdesc="Emulator of the Windows 3.x and Win32 APIs"
url="http://www.winehq.com"
builddate = Wed Sep 19 18:48:49 2007
packager = Yuri Fil <yurifil@altlinux.org>
arch = noarch
license = GPL
license = LGPL
depend = fontconfig
depend = libldap
depend = libxslt
depend = lcms
depend = libxxf86dga
depend = libxcursor
depend = libxrandr
depend = libxdamage
depend = freeglut

В системе:
pacman -Qs wine
error: invalid name for database entry 'wine-1.0.8'

pacman -Qs wine-1.0.8
error: invalid name for database entry 'wine-1.0.8'
Comment 5 Юрий Филь 2008-09-10 18:41:47 MSD
Что интересно, в оригинальном вайне нет файла .FILELIST.
Как восстановят Арч, нужно будет попробовать собрать пакет без этого файла.
Comment 6 Юрий Филь 2008-09-12 19:53:53 MSD
Без .FILELIST тоже самое происходит: установить пэкмэном удается, но в базе пэкмэна нет:
pacman -Q wine
error: invalid name for database entry 'wine-1.0.8'
error: package "wine" not found
Не могу понять, в чем проблема: вроде, .PKGINFO сделан как в арчевском вайне.
Comment 7 Александр Пликус 2008-09-18 12:42:43 MSD
надо ускорить процесс...
Comment 8 Юрий Филь 2008-09-18 17:40:01 MSD
Зарегестрировался на форуме ArchLinux. Может, там разъяснят, как паковать бинарники.
Comment 9 Юрий Филь 2008-09-23 14:06:30 MSD
Как починят testing, попробую собрать с помощью abs.
Comment 10 Константин Кондратюк 2008-10-15 13:13:33 MSD
Что-нибудь проясняется?
Comment 11 Константин Кондратюк 2008-12-04 13:39:25 MSK
Ау?
Comment 12 Юрий Филь 2008-12-04 13:58:37 MSK
Руками добавить файлы не получилось. 
Собрал в Арче пакет. Если можно как-то выложить файл из системы на ftp, то, в целом, задача решена.
Почти готов скрипт, которым можно будет собирать под Арч разные пакеты. Осталось разобраться с владельцами каталогов.
Comment 13 Юрий Филь 2008-12-04 22:14:54 MSK
Готово.
Comment 14 Юрий Филь 2008-12-06 16:21:57 MSK
Если делать конвертор, он должен добавлять в архив файл .PKGINFO, файл wine.outformat и скрипт wine.
Comment 15 Юрий Филь 2008-12-06 16:22:29 MSK
Created attachment 955 [details]
скрипт wine
Comment 16 Юрий Филь 2008-12-06 16:23:46 MSK
Created attachment 956 [details]
wine.outformat
Comment 17 Vitaly Lipatov 2008-12-06 16:26:55 MSK
(In reply to comment #14)
> Если делать конвертор, он должен добавлять
> в архив файл .PKGINFO, файл wine.outformat и скрипт wine.
> 

Скрипты wine.outformat и wine ставятся чрез make install, что можно увидеть в любом спеке wine.
Так что осталось разобраться в отличиях .PKGINFO.
Comment 18 Юрий Филь 2008-12-06 16:33:10 MSK
Файл PKGINFO можно добавлять так:
копировать сделанный alien'ом тарбол в систему, распаковывать его, упаковывать бинарники с помощью abs, как и предополагалось ранее.
Comment 19 Юрий Филь 2008-12-06 16:33:48 MSK
Но в этом случае непонятно, как быть с wine*
Comment 20 Vitaly Lipatov 2008-12-06 16:37:29 MSK
(In reply to comment #18)
> Файл PKGINFO можно добавлять так:
> копировать сделанный alien'ом тарбол в
> систему, распаковывать его, упаковывать
> бинарники с помощью abs, как и
> предополагалось ранее.
Возможно alien можно установить прямо в Arch, что упростит процедуру.

Comment 21 Юрий Филь 2008-12-06 16:44:02 MSK
Не совсем понимаю, какой смысл ставить алиен в Арч, если после конвертации получается нерабочий пакет.
Comment 22 Юрий Филь 2008-12-06 17:40:54 MSK
Надо сделать скрипт, который будет вставлять в "черновой" пкгбилд данные о пакете.
Плюс, как-то зависимости приводить к Арчевским (они в PKGINFO есть).

Потом копировать пкгбилд и архив с бинарниками в Арч и пересобирать пакет.
Есть другие варианты?
Comment 23 Vitaly Lipatov 2008-12-06 18:04:51 MSK
http://aur.archlinux.org/packages.php?ID=3710
http://bbs.archlinux.org/viewtopic.php?id=48573
ещё есть rpmextract
http://unixforum.org/index.php?s=c2fa35d81f2890a84d202846d8caadac&showtopic=52902&pid=524482&mode=threaded&start=#entry524482
Для проверки получившегося пакета надо использовать не клиентов, а namcap
Comment 24 Юрий Филь 2008-12-08 17:23:28 MSK
Не могу пока сообразить, откуда брать версию, релиз, url и тип лицензии для добавления в pkgbuild. Видимо, нужно как-то извлекать их из спеков собираемых пакетов.
Comment 25 Vitaly Lipatov 2008-12-08 18:17:18 MSK
(In reply to comment #24)
> Не могу пока сообразить, откуда брать
> версию, релиз, url и тип лицензии для
> добавления в pkgbuild. Видимо, нужно как-то
> извлекать их из спеков собираемых пакетов.
Открой для себя нечто типа
rpmquery --queryformat "%NAME = %VERSION" пакет
Comment 26 Юрий Филь 2008-12-08 20:24:09 MSK
Готов скрипт, конвертирующий rpm в pkg.tgz. Осталось разобраться, куда в сборочную систему его вставлять.
Comment 27 Юрий Филь 2008-12-09 16:01:15 MSK
Похоже, следует заменить скриптом alien в функции convert_rpm() из build-rpm.sh.
Comment 28 Юрий Филь 2008-12-09 16:56:09 MSK
В этом случае надо либо чтобы скрипт находился в системе (например, поставлялся в составе etersoft-build-utils) или копировать его во время сборки (как в gentoo).
Comment 29 Vitaly Lipatov 2008-12-09 17:09:33 MSK
(In reply to comment #28)
> В этом случае надо либо чтобы скрипт
> находился в системе (например, поставлялся
> в составе etersoft-build-utils) или копировать его во
> время сборки (как в gentoo).
Ну вполне можно копировать во время сборки.
Comment 30 Юрий Филь 2008-12-22 18:16:39 MSK
Готова рабочая версия. Закоммитил.
Теперь нужно разобраться с добавлением зависимостей и регистрационных номеров для закрытых частей.
Comment 31 Юрий Филь 2008-12-22 18:27:23 MSK
В теперешнем варианте добавлена case-ветка в build-main.sh:
собираются rpm, в BUILDROOT копируется скрипт convert_to_pkg_tgz, с его помощью rpm конвертируются в pkg.tar.gz.
Получился гибрид сборки для Gentoo и rpm-дистрибутивов.
Можно попробовать сделать как предполагалось ранее - заменить alien в build-rpm. В этом случае, видимо, нужно, чтобы скрипт (convert_to...) лежал в системе постоянно.
Comment 32 Юрий Филь 2009-01-15 21:18:06 MSK
Скрипт готов. Можно закрывать багу?