Страница 1 из 1

сборка пакета в ABF

Добавлено: 17 фев 2017, 19:07
zrpg
Учусь пересобирать пакеты в ABF. Взял за основу пакет с исходником gzip из main репозитория Росы.
Зашёл в ABF и нажал кнопку "Новый проект". Задал вот такие параметры и указал путь к файлу src.rpm
Screenshot_20170217_204725.png
ABF сообщил что проект создан и показал файлы пакета. Вверху видно что это всё попало в ветку "Master". Если переключится на ветку "Import" то там видно те же самые файлы. То есть проект существует сразу в двух ветках. Так должно быть?

Далее ничего вообще не изменяю и пробую собрать с такими параметрами
Screenshot_20170217_205725.png
и получаю ответ "ошибка сборки"
Screenshot_20170217_210418.png
Подскажите, что я делаю не так?

Re: сборка пакета в ABF

Добавлено: 17 фев 2017, 19:20
VictorR2007
Источник main не подключен.

Re: сборка пакета в ABF

Добавлено: 17 фев 2017, 19:26
Алзим
Если проект есть в Росе, то его можно просто клонировать.
Новый создавать необязательно. И нужные репозитории, скорее всего, подключатся сами.

Re: сборка пакета в ABF

Добавлено: 17 фев 2017, 19:28
Pulfer
zrpg писал(а):ABF сообщил что проект создан и показал файлы пакета. Вверху видно что это всё попало в ветку "Master". Если переключится на ветку "Import" то там видно те же самые файлы. То есть проект существует сразу в двух ветках. Так должно быть?
Да, это поведение ABF по умолчанию. Но фактически потом эти ветки всё равно не используются, т.к. работа с пакетами идёт в ветках, соответствующих платформам для которых они собираются. Т.е. если собираем для платформы rosa2014.1, то работаем с веткой гита rosa2014.1. А за мастер-ветку фактически считается та ветка, которая соответствует самой новой платформе, сейчас это rosa2016.1. Так что после импорта SRPM лучше сразу создать нужную ветку и работать уже с ней. А import оставить просто для истории, если надо. master можно было бы удалить, но гит/ABF не очень хорошо работает с репозиториями, где нет ветки master, так что лучше её оставить.
zrpg писал(а):Подскажите, что я делаю не так?
При сборке обязательно надо подключать репозиторий Main, если только в своём частном репозитории уже не собраны все нужные для сборки текущего пакета зависимости (а это пара сотен пакетов, наверное, начиная с filesystem, basesystem и т.д.). А на скриншоте видно, что он отключен.

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 07:24
zrpg
Pulfer писал(а):А на скриншоте видно, что он отключен.
Так понимаю это делается в разделе "Дополнительные репозитории"?
Пробовал там писать main, появляется подсказка на чей-то частный репозиторий. Как его подключить?
Алзим писал(а):Если проект есть в Росе, то его можно просто клонировать.
Дело в том что на странице "Проекты" видно только мои, я пытался найти проекты Росы, то не вижу где они там. В статье на wiki сказано что они находятся на этой странице. Подскажи пожалуйста где они?

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 07:48
trs
Слева вверху, под надписью "Собрано для платформы", где выбран репозиторий "contrib", там же отметить и "main". По-моему, перечню из 4х подключаемых источникорв не хватет собственного заголовка.

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 08:43
zrpg
Пробовал ещё и так
сборка_2.png
сборка_3.png
Результат тот же "Ошибка сборки"

Может есть где-то логи сборки, чтобы понять что к чему?

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 09:43
trs
https://abf.io/build_lists/2846849
Так вроде как статус "собран"

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 11:15
zrpg
trs
сборка_3-1.png
ни одного собранного нет

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 12:38
trs
Про картинку ничего не могу сказать, а по моей ссылке видно 4 собранных пакета, и gzip-1.6-1-rosa2014.1.x86_64.rpm скачивается.

Но они не опубликованы. Причина, насколько я понял test.log

Код: Выделить всё

Installation is possible
unlocking urpmi database
EXITING (pid=11279)
Test code output:  0
--> Checking if same or newer version of the package already exists in repositories
A package with the same name (gzip:) and same or newer version (0:1.8-1:2014.1) already exists in repositories!
A package with the same name (gzip-utils:) and same or newer version (0:1.8-1:2014.1) already exists in repositories!
в том, что пакеты с такими же именами и версиями уже есть в оф.репозиториях. Что с этим делать (кроме увеличения Release в gzip.spec) не знаю, клонированные проекты без изменений не собирал. По-моему запрет на публикацию разумный, поскольку при установке будет не ясно, какой именно пакет следует использовать.

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 14:10
zrpg
Увидел что он собрался, опубликовал в персональный репозиторий. Теперь понятно как это делается. Спасибо всем за помощь!
В результатах сборки вижу ещё и "тесты не прошли" похоже что именно из-за этого пакет не попал в список собранных.

Что это за тесты и почему после простой пересборки пакета они не пройдены?

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 14:42
trs
По ссылке на сборочный лист снизу список логов. Там есть и тесты, я фрагмент выше скопировал.

Re: сборка пакета в ABF

Добавлено: 18 фев 2017, 15:13
Алзим
zrpg писал(а): Что это за тесты и почему после простой пересборки пакета они не пройдены?
Выше trs уже ответил на этот вопрос.
Могу дополнить, что в Росе при просто пересборке (или с изменениями в спеке и т.п.) принято увеличивать цифру релиза в спеке.
В большинстве случаев, простая пересборка бесполезна. Но бывают ситуации когда даже простая пересборка важна. Например, когда были обновления библиотек и т.п. влияющие на определённый пакет и ломаются зависимости. В этом случае пересборка просто необходима. Собирающий пакет увеличивает цифру релиза и является хорошим тоном в комменте описать причину пересборки.

Re: сборка пакета в ABF

Добавлено: 20 фев 2017, 15:11
zrpg
Алзим
Всё так, но пока собираю только для себя не собираясь отправлять запрос. Присматриваюсь просто :)

Re: сборка пакета в ABF

Добавлено: 22 фев 2017, 16:58
zrpg
Почему-то не вижу в ABF проекты других людей. Судя по статье на wiki они там должны быть. Так и задумано?
На снимке, попытка найти проект zim
Screenshot_20170222_185650.png

Re: сборка пакета в ABF

Добавлено: 23 фев 2017, 07:32
trs
Для этого предназначен "Поиск" что выше и правее.

Re: сборка пакета в ABF

Добавлено: 23 фев 2017, 08:22
zrpg
trs, слона то я и не приметил :oops: Спасибо за подсказку.

Re: сборка пакета в ABF

Добавлено: 26 фев 2017, 12:18
zrpg
Собрал пакет gtkguitune. Получилось, но остались вопросы:
1) пакет лежит в репозитории Contrib. Проект создавал импортом из import/gtkguitune. При сборке автоматически подключился только репозиторий main. Но тем не менее пакет собрался. Разве не нужно было подключать ещё и Contrib?
2) Значка в меню приложений нет. Поиск по системе выдал что такого файла gtkguitune_logo вообще нет на диске. В spec вижу указание на этот файл в секции %files. Хотел добавить его в проект, не вижу как. Как правильнее поступить?

Re: сборка пакета в ABF

Добавлено: 27 фев 2017, 06:54
trs
1. Для сборки пакета могут быть необходимы другие пакеты (т.н. библиотечные файлы). Репозитории, где они находятся, и подключают. А куда после сборки булет помещён пакет (персональный репозиторий, Contrib, Main) — это определяется по иным правилам (в зависимости от лицензии и наличия официальной поддержки) и с процессом сборки не связано.

2. В собранном RPM файл gtkguitune_logo.svg присутствует. Почему он не появился в системе после установки, не знаю.

Re: сборка пакета в ABF

Добавлено: 28 фев 2017, 17:01
zrpg
trs, ещё подумаю. Спасибо!

Сегодня собрал пакет xfce4-pulseaudio-plugin. Хотел послать запрос (pull request), но не пойму как.
Смысл вот в чём. За основу взял проект "openmandriva/xfce4-pulseaudio-plugin", но собирал для rosa2014.1. При отправке запроса нет возможности изменить на платформу rosa2014.1. Вбил руками в стоку ниже, ответ страница не существует.
Снимок экрана_2017-02-28_18-58-51.png
Как быть?

Re: сборка пакета в ABF

Добавлено: 03 мар 2017, 13:38
zrpg
Сегодня пересобирал другой пакет, взятый уже из import/xfce4-terminal. Собрался, проверил - работает. Решил послать запрос. И снова тоже самое
Снимок экрана_2017-03-03_15-36-15.png
Подскажите что я делаю не так?

Re: сборка пакета в ABF

Добавлено: 03 мар 2017, 14:37
trs
Так пулреквест отправляется в openmandriva (поле "Куда") где нет платформы rosa2014.1. Т.е. надо "openmandriva" изменить например на "zrpg", или "import" (это если отправляете обновление в официальные репозитории, но туда примут не всё и не всегда). После нажать на кнопку "Обновить коммиты", получается примерно так:
pullrequest.png
Однако, я сам такое не далал, могу и ошибаться.

Re: сборка пакета в ABF

Добавлено: 03 мар 2017, 15:40
zrpg
trs писал(а):Однако, я сам такое не далал, могу и ошибаться.
Не ошибаетесь. Получилось. Спасибо!

А с проектом xfce4-pulseaudio-plugin не получается. Видимо дело в том что такого проекта нет в import. То есть вообще не появляется кнопка "Обновить коммиты".
Каким образом можно попросить разработчиков добавить пакет?

Re: сборка пакета в ABF

Добавлено: 03 мар 2017, 20:27
Pulfer
zrpg писал(а):Каким образом можно попросить разработчиков добавить пакет?
Я его добавлю чуть позже. Там ещё переделать некоторые части надо (например, Summary должно быть на английском языке). Пока что скачал себе SRPM, чтобы не забыть.

Re: сборка пакета в ABF

Добавлено: 03 мар 2017, 22:15
zrpg
Pulfer писал(а):например, Summary должно быть на английском языке
ну вот :cry:

Re: сборка пакета в ABF

Добавлено: 08 мар 2017, 17:09
Pulfer
xfce4-pulseaudio-plugin я собрал сейчас для rosa2014.1 и rosa2016.1.

Re: сборка пакета в ABF

Добавлено: 09 мар 2017, 10:14
zrpg
Pulfer, спасибо!
Только что-то в репозиториях пока не вижу. Где он?

Re: сборка пакета в ABF

Добавлено: 09 мар 2017, 18:17
keleg
видимо, зеркала тормозят. Вот он http://abf-downloads.rosalinux.ru/rosa2 ... x86_64.rpm

Re: сборка пакета в ABF

Добавлено: 10 мар 2017, 11:37
zrpg
keleg, появился в репозитории :)

Pulfer, я пока не умею хорошо собирать пакеты, поэтому интересно всё ли сделал правильно. Есть замечания по поводу этой сборки?

Re: сборка пакета в ABF

Добавлено: 10 мар 2017, 11:42
Pulfer
zrpg писал(а):Pulfer, я пока не умею хорошо собирать пакеты, поэтому интересно всё ли сделал правильно. Усть замечания по поводу этой сборки?
Кроме Summary вроде бы всё ок было :-)

Re: сборка пакета в ABF

Добавлено: 10 мар 2017, 11:46
zrpg
Насчёт summary. Почитал статью на wiki http://wiki.rosalab.ru/ru/index.php/Основы_RPM
  • совершенно особый тэг внутри заголовочной части спек-файла, потому что он содержит текст, который может занимать произвольное количество строк и параграфов. Текст содержит полное описание программного обеспечения, которое помогает пользователю решить нужно ли устанавливать данный пакет или нет. В целях улучшения восприятия спек-файлов, переводы тэгов summary и description хранятся в специальных файлах, называемых <package>.po.
    Эти файлы хранятся в poSPECS модуле в CVS Cooker. Когда создаётся новый пакет, основной po-файл автоматически создаётся в этом модуле для будущих переводов.
    Этот метод подразумевает, что весь текст внутри спек-файла написал на английском языке. Однако, есть пакеты, предназначенные для определённых языков (например, ispell-de). В этом случае рекомендуется наличие текста на двух языках: на английском и на языке, для которого предназначен этот пакет. Для этого надо будет использовать специальные тэги: Summary(de): .. и %description -l de.
То есть вот так надо описания на русском вставлять или куда можно по русски надпись сделать?
И где потом это будет видно?

Re: сборка пакета в ABF

Добавлено: 10 мар 2017, 22:50
Pulfer
zrpg писал(а):То есть вот так надо описания на русском вставлять или куда можно по русски надпись сделать?
И где потом это будет видно?
Фактически сейчас никуда вставлять нельзя. :( Как часто бывает, мануалы не успевают за развитием технологий. Например, "Эти файлы хранятся в poSPECS модуле в CVS Cooker" - уже и CVS Cooker давно нет в живых, а текст ещё остался.

Печальная история тут в том, что когда-то в Росе активно велась разработка нового центра приложений, который полноценно поддерживал бы локализацию описаний пакетов, скриншоты, рейтинги и т.д., а потом в стране случился кризис и разработку этого центра приложений постепенно заморозили, так и не доведя его до пригодного к использованию состояния.

Re: сборка пакета в ABF

Добавлено: 11 мар 2017, 18:23
zrpg
Печально. Так может пора поднять и вывести в свет старые разработки? :)

Re: сборка пакета в ABF

Добавлено: 11 мар 2017, 22:27
Галахов Роман
zrpg писал(а):Печально. Так может пора поднять и вывести в свет старые разработки? :)
Будет спонсор - можно... Но сейчас ROSA в свободном финансовом плавании, и 90% разработок - платные версии (для организаций), а там это не не нужно...

Re: сборка пакета в ABF

Добавлено: 12 мар 2017, 13:22
zrpg
Галахов Роман, наивно я полагал что разработку Fresh ведут, так сказать для души. Спонсорами к сожалению помочь не могу.

Подпишусь на одно дело. Если всё-таки будет возможность добавить summary и description на русском, то возьмусь перевести 5% пакетов от всей кучи

Код: Выделить всё

$ urpmf --name .* | sort | uniq | wc
  37253   37253  611854
Следовательно сделаю 2000 переводов этих описаний. И да, сделаю просто так, без денег. Просто для души :)

Столкнулся вот с такой проблемой при сборке пакета. Не могу понять что такое xmu, и что нужно добавить в spec раздел BuildRequires
DEBUG util.py:264: checking for xmu >= 1.1.2... not found
DEBUG util.py:264: *** The required package xmu was not found on your system.
DEBUG util.py:264: *** Please install xmu (atleast version 1.1.2) or adjust
DEBUG util.py:264: *** the PKG_CONFIG_PATH environment variable if you
DEBUG util.py:264: *** installed the package in a nonstandard prefix so that
DEBUG util.py:264: *** pkg-config is able to find it.
DEBUG util.py:264: RPM build errors:
DEBUG util.py:264: error: Bad exit status from /var/tmp/rpm-tmp.48533 (%build)
DEBUG util.py:264: Bad exit status from /var/tmp/rpm-tmp.48533 (%build)
DEBUG util.py:372: Child returncode was: 1

Re: сборка пакета в ABF

Добавлено: 12 мар 2017, 16:13
zrpg
Разобрался. Это пакет libxmu

Re: сборка пакета в ABF

Добавлено: 12 мар 2017, 19:10
zrpg
Наконец-то собрал пакет xfce4-taskmanager-1.2.0-1-rosa2014.1.x86_64
Но в итоге надпись "Тесты не прошли". В логах вообще почти что нет ошибок. Вижу только эти:
1) DEBUG util.py:335: Executing command: ['/usr/sbin/groupdel', 'mockbuild']
DEBUG util.py:372: Child returncode was: 6
Как понимаю, исправление этого от меня не зависит.
2) --> Checking if same or newer version of the package already exists in repositories
A package with the same name (xfce4-taskmanager:) and same or newer version (1:1.0.0-6:2014.1) already exists in repositories!
No package named xfce4-taskmanager-debuginfo
Test code output: 1
Не понимаю, что ему надо. В репозиториях РОСА такого или ещё более нового пакета не находит.

Страница результатов сборки https://abf.io/build_lists/2856225

Подскажите пожалуйста, что я сделал не так?

Re: сборка пакета в ABF

Добавлено: 13 мар 2017, 07:51
Pulfer
zrpg писал(а):2) --> Checking if same or newer version of the package already exists in repositories
A package with the same name (xfce4-taskmanager:) and same or newer version (1:1.0.0-6:2014.1) already exists in repositories!
Не понимаю, что ему надо. В репозиториях РОСА такого или ещё более нового пакета не находит.
Тут дело в том, что в репозиториях есть пакет xfce4-taskmanager, у которого хотя версия и 1.0.0, но есть ещё поле Epoch, которое как бы добавляет ещё одну цифру к версии. И сравнение идёт не между 1.0.0 и 1.2.0, а между 1:1.0.0 и 0:1.2.0. И получается, что собираемый пакет считается старее, чем пакет в репозиториях. Поле Epoch используется там, где надо откатить версию программы, если по каким-то причинам единственный способ исправить найденную ошибку - откат версии. Кроме того, в апстриме иногда меняют схему версий, после чего новые версии оказываются с меньшими цифрами, чем старые. Сперва выпускают что-нибудь типа 2014.3, а потом 1.0. В некоторых спеках можно всретить конструкцию %{EVRD}, первая буква как раз в ней означает %{epoch}, а далее идут %{version}, %{release} и %{distepoch} по мере убывания их "веса" в сравнении.

P.S. В репозиториях я сейчас xfce4-taskmanager обновил до 1.2.0.

Re: сборка пакета в ABF

Добавлено: 13 мар 2017, 08:43
zrpg
Pulfer, теперь понятно. Спасибо!
А по spec файлу замечания есть?

Re: сборка пакета в ABF

Добавлено: 13 мар 2017, 09:36
Pulfer
zrpg писал(а):Pulfer, теперь понятно. Спасибо!
А по spec файлу замечания есть?
1. %changelog в спеке не нужен

2. "%find_lang %{name} %{name}.lang" делает то же самое, что "%find_lang %{name}", так что можно "%{name}.lang" не добавлять. Это если бы надо было несколько разных имён файлов локализаций найти и поместить в %{name}.lang, то имело бы смысл делать перечисление. А когда имя файла локализации всего одно, то оно же используется для имени файла *.lang

3. Зависимости сборки не очень правильно указаны (из-за этого при сборке видно в логе, что "Wnck: no"). Я поправил их: https://abf.io/import/xfce4-taskmanager ... nager.spec

Re: сборка пакета в ABF

Добавлено: 13 мар 2017, 16:54
zrpg
А вот теперь не всё понимаю
1) %find_lang - что делает и почему он в секции %install ?
2) а где вообще видно какие файлы lang есть в сборке или пакете?
3) указание зависимостей со скобками и без, в чём разница. То есть pkgconfig(xmu) и libxmu-devel?
4) что такое wnck?
5) где находится каталог сборки, который в статье указан как tmp?
$ tree ~/rpmbuild
/home/evg/rpmbuild
├── BUILD
│   └── xfce4-taskmanager-1.2.0
│   ├── aclocal.m4
│   ├── AUTHORS
│   ├── ChangeLog
│   ├── compile
│   ├── config.guess
│   ├── config.h
│   ├── config.h.in
│   ├── config.log
│   ├── config.status
│   ├── config.sub
│   ├── configure
│   ├── configure.ac
│   ├── COPYING
│   ├── data
│   │   ├── icons
│   │   │   ├── 16x16
│   │   │   │   ├── Makefile
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   └── xc_crosshair.png
│   │   │   ├── 24x24
│   │   │   │   ├── Makefile
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   └── xc_crosshair.png
│   │   │   ├── Makefile
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   └── scalable
│   │   │   ├── Makefile
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   └── xc_crosshair.svg
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   └── Makefile.in
│   ├── debugfiles.list
│   ├── debuglinks.list
│   ├── debugsources.list
│   ├── depcomp
│   ├── INSTALL
│   ├── install-sh
│   ├── intltool-extract.in
│   ├── intltool-merge.in
│   ├── intltool-update.in
│   ├── libtool
│   ├── ltmain.sh
│   ├── ltmain.sh.drop
│   ├── ltmain.sh.orig
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── missing
│   ├── NEWS
│   ├── po
│   │   ├── ar.gmo
│   │   ├── ar.po
│   │   ├── ast.gmo
│   │   ├── ast.po
│   │   ├── be.gmo
│   │   ├── be.po
│   │   ├── bg.gmo
│   │   ├── bg.po
│   │   ├── ca.gmo
│   │   ├── ca.po
│   │   ├── cs.gmo
│   │   ├── cs.po
│   │   ├── da.gmo
│   │   ├── da.po
│   │   ├── de.gmo
│   │   ├── de.po
│   │   ├── el.gmo
│   │   ├── el.po
│   │   ├── en_AU.gmo
│   │   ├── en_AU.po
│   │   ├── en_GB.gmo
│   │   ├── en_GB.po
│   │   ├── es.gmo
│   │   ├── es.po
│   │   ├── eu.gmo
│   │   ├── eu.po
│   │   ├── fi.gmo
│   │   ├── fi.po
│   │   ├── fr.gmo
│   │   ├── fr.po
│   │   ├── gl.gmo
│   │   ├── gl.po
│   │   ├── he.gmo
│   │   ├── he.po
│   │   ├── hr.gmo
│   │   ├── hr.po
│   │   ├── hu.gmo
│   │   ├── hu.po
│   │   ├── id.gmo
│   │   ├── id.po
│   │   ├── is.gmo
│   │   ├── is.po
│   │   ├── it.gmo
│   │   ├── it.po
│   │   ├── ja.gmo
│   │   ├── ja.po
│   │   ├── kk.gmo
│   │   ├── kk.po
│   │   ├── ko.gmo
│   │   ├── ko.po
│   │   ├── lt.gmo
│   │   ├── lt.po
│   │   ├── lv.gmo
│   │   ├── lv.po
│   │   ├── Makefile
│   │   ├── Makefile.in
│   │   ├── Makefile.in.in
│   │   ├── ms.gmo
│   │   ├── ms.po
│   │   ├── nb.gmo
│   │   ├── nb.po
│   │   ├── nl.gmo
│   │   ├── nl.po
│   │   ├── oc.gmo
│   │   ├── oc.po
│   │   ├── pa.gmo
│   │   ├── pa.po
│   │   ├── pl.gmo
│   │   ├── pl.po
│   │   ├── POTFILES
│   │   ├── POTFILES.in
│   │   ├── POTFILES.skip
│   │   ├── pt_BR.gmo
│   │   ├── pt_BR.po
│   │   ├── pt.gmo
│   │   ├── pt.po
│   │   ├── ru.gmo
│   │   ├── ru.po
│   │   ├── si.gmo
│   │   ├── si.po
│   │   ├── sk.gmo
│   │   ├── sk.po
│   │   ├── sl.gmo
│   │   ├── sl.po
│   │   ├── sq.gmo
│   │   ├── sq.po
│   │   ├── sr.gmo
│   │   ├── sr.po
│   │   ├── stamp-it
│   │   ├── sv.gmo
│   │   ├── sv.po
│   │   ├── te.gmo
│   │   ├── te.po
│   │   ├── th.gmo
│   │   ├── th.po
│   │   ├── tr.gmo
│   │   ├── tr.po
│   │   ├── ug.gmo
│   │   ├── ug.po
│   │   ├── uk.gmo
│   │   ├── uk.po
│   │   ├── ur.gmo
│   │   ├── ur_PK.gmo
│   │   ├── ur_PK.po
│   │   ├── ur.po
│   │   ├── vi.gmo
│   │   ├── vi.po
│   │   ├── zh_CN.gmo
│   │   ├── zh_CN.po
│   │   ├── zh_HK.gmo
│   │   ├── zh_HK.po
│   │   ├── zh_TW.gmo
│   │   └── zh_TW.po
│   ├── README
│   ├── src
│   │   ├── app-manager.c
│   │   ├── app-manager.h
│   │   ├── exec-tool-button.c
│   │   ├── exec-tool-button.h
│   │   ├── main.c
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── process-monitor.c
│   │   ├── process-monitor.h
│   │   ├── process-statusbar.c
│   │   ├── process-statusbar.h
│   │   ├── process-tree-model.c
│   │   ├── process-tree-model.h
│   │   ├── process-tree-view.c
│   │   ├── process-tree-view.h
│   │   ├── process-window.c
│   │   ├── process-window-gtk3.ui
│   │   ├── process-window-gtk3_ui.h
│   │   ├── process-window.h
│   │   ├── process-window.ui
│   │   ├── process-window_ui.h
│   │   ├── settings.c
│   │   ├── settings-dialog.c
│   │   ├── settings-dialog-gtk3.ui
│   │   ├── settings-dialog-gtk3_ui.h
│   │   ├── settings-dialog.h
│   │   ├── settings-dialog.ui
│   │   ├── settings-dialog_ui.h
│   │   ├── settings.h
│   │   ├── settings-tool-button.c
│   │   ├── settings-tool-button.h
│   │   ├── task-manager-bsd.c
│   │   ├── task-manager.c
│   │   ├── task-manager-freebsd.c
│   │   ├── task-manager.h
│   │   ├── task-manager-linux.c
│   │   ├── task-manager-skel.c
│   │   ├── task-manager-solaris.c
│   │   ├── xfce4-taskmanager
│   │   ├── xfce4_taskmanager-exec-tool-button.o
│   │   ├── xfce4_taskmanager-main.o
│   │   ├── xfce4_taskmanager-process-monitor.o
│   │   ├── xfce4_taskmanager-process-statusbar.o
│   │   ├── xfce4_taskmanager-process-tree-model.o
│   │   ├── xfce4_taskmanager-process-tree-view.o
│   │   ├── xfce4_taskmanager-process-window.o
│   │   ├── xfce4_taskmanager-settings-dialog.o
│   │   ├── xfce4_taskmanager-settings.o
│   │   ├── xfce4_taskmanager-settings-tool-button.o
│   │   ├── xfce4_taskmanager-task-manager-linux.o
│   │   └── xfce4_taskmanager-task-manager.o
│   ├── stamp-h1
│   ├── THANKS
│   ├── xfce4-taskmanager.desktop
│   ├── xfce4-taskmanager.desktop.in
│   └── xfce4-taskmanager.lang
├── BUILDROOT
├── RPMS
│   ├── noarch
│   └── x86_64
│   ├── xfce4-taskmanager-1.2.0-1-rosa2014.1.x86_64.rpm
│   └── xfce4-taskmanager-debuginfo-1.2.0-1-rosa2014.1.x86_64.rpm
├── SOURCES
│   └── xfce4-taskmanager-1.2.0.tar.bz2
├── SPECS
│   └── xfce4-taskmanager.spec
├── SRPMS
│   └── xfce4-taskmanager-1.2.0-1.src.rpm
└── tmp

Re: сборка пакета в ABF

Добавлено: 13 мар 2017, 18:51
Pulfer
zrpg писал(а):А вот теперь не всё понимаю
1) %find_lang - что делает и почему он в секции %install ?
Это макрос, который ищет среди установленных при сборке файлов файлы локализации и записывает сформированный список в файл .lang, который потом в спеке включается через параметр -f: %files -f %{name}.lang

Можно было бы и без макроса обойтись, просто прописать все эти файлы вручную. Но с макросом быстрее. Пример содержимого lang-фала (сформировался при сборке пакета smb4k).

Код: Выделить всё

 $ cat smb4k.lang
...
%lang(es) /usr/share/locale/es/LC_MESSAGES/smb4k.mo
%lang(es) /usr/share/locale/es/LC_MESSAGES/plasma_applet_smb4k-qml.mo
%lang(es) /usr/share/locale/es/LC_MESSAGES/smb4k-core.mo
%lang(nl) /usr/share/locale/nl/LC_MESSAGES/smb4k.mo
%lang(nl) /usr/share/locale/nl/LC_MESSAGES/plasma_applet_smb4k-qml.mo
%lang(nl) /usr/share/locale/nl/LC_MESSAGES/smb4k-core.mo
...
В этом случае можно сделать
%find_lang %{name} --all-name
или
%find_lang %{name} plasma_applet_smb4k-qml smb4k-core %{name}.lang

По желанию можно вместо %{name} просто smb4k написать или наоборот заменить smb4k-core на %{name}-core. Как удобнее. Технически без разницы.
2) а где вообще видно какие файлы lang есть в сборке или пакете?
Если убрать из спека %find_lang и включение %{name}.lang через -f в %files, то в конце сборка упадёт с ошибкой "Найдены неупакованные файлы" и будет их список. Кроме того, если собирать пакет на своей машине, а не на ABF, то в каталоге ~/rpm/BUILD/[пакет]/ после сборки пакета будет файл .lang, в который можно просто заглянуть и посмотреть, что туда прописалось.
3) указание зависимостей со скобками и без, в чём разница. То есть pkgconfig(xmu) и libxmu-devel?
pkgconfig(xmu) просто более универсальный способ, т.к. не зависит от того, как мейнтейнеры в разных дистрибутивах назвали -devel пакеты и что прописали у них в Provides, а основывается на именах .pc файлов в соответствующих пакетов.
4) что такое wnck?
GTK-шная библиотека для управления окнами ("a library for use in writing pagers, tasklists, and more generally applications that are dealing with window management").
5) где находится каталог сборки, который в статье указан как tmp?
Видимо, это системный tmp, но если мне не изменяет память, то, что пишется туда при сборке пакета, потом всё равно удаляется, так что посмотреть на временные файлы, создаваемые при сборке, вряд ли тривиально.