* [devel] I: Утилита buildreq-src
@ 2016-03-14 16:40 Igor Vlasenko
2016-03-15 7:23 ` Andrey Cherepanov
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-14 16:40 UTC (permalink / raw)
To: devel
Утилита buildreq-src
____________________
Утилита живет сейчас в пакете perl-RPM-Source-Dependency-Analyzer.
Однако так как ранее она уже кочевала из пакета в пакет,
ее лучше устанавливать как
apt-get install /usr/bin/buildreq-src
Утилиту можно использовать как при создании пакета,
так и при сопровождении пакета.
Создание пакета.
_______________
При создании пакета у нас есть только исходники.
Их и передадим утилите.
Это может быть
* архив исходников
buildreq-src ../SOURCES/lbreakout2-2.6.5.tar.gz
* каталог с распакованными исходниками
buildreq-src ../BUILD/lbreakout2-2.6.5
* или даже отдельные файлы:
buildreq-src ../BUILD/lbreakout2-2.6.5/configure.ac
Запустим, к примеру, buildreq-src с архивом исходников.
$ buildreq-src ../SOURCES/lbreakout2-2.6.5.tar.gz
утилита выведет найденные сборочные зависимости:
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL-devel libSDL_mixer-devel libSDL_net-devel libpng-devel zlib-devel
# END SourceDeps(oneline)
Их можно вручную вставить в spec файл.
Однако утилита и сама может сделать это, если ей дать еще и spec файл.
Сопровождение пакета.
_____________________
Утилита buildreq-src не работает напрямую c src.rpm пакетом.
его надо сначала установить:
rpm -i ../SRPMS/lbreakout2-2.6.5-alt1.src.rpm
В gear git репозитории обычно уже ничего делать не нужно,
и спек файл, и каталог с распакованными исходниками уже
под рукой.
Опять запустим buildreq-src, дополнительно передав
ей spec файл опцией --spec <путь>.
С опцией --spec buildreq-src только прочитает spec файл.
Никаких изменений в spec файле не произойдет.
buildreq-src --spec lbreakout2.spec ../SOURCES/lbreakout2-2.6.5.tar.gz
На этот раз утилита выведет более короткий список:
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL_net-devel zlib-devel
# END SourceDeps(oneline)
Этот список -- разность между сборочными зависимостями
пакета lbreakout2, найденными утилитой buildreq-src,
и сборочными зависимостями пакета, прописанными в его
спек файле.
Список не пустой --- buildreq-src для lbreakout2
нашла две зависимости для lbreakout2, которые не
указаны в спек файле: libSDL_net-devel и zlib-devel.
Отсутствие zlib-devel не имело последствий, так как
в итоге lbreakout2 все равно слинковался с -lz.
Ее в итоге вытянула какая-то из других зависимостей.
Однако поскольку lbreakout2 явно линкуется с zlib,
то zlib-devel лучше добавить в BuildRequires явно.
Сегодня она неявно вытягивается по зависимостям,
а завтра может и не вытянуться. Тогда сборка сломается,
или, что еще хуже, пакет молча соберется но потеряет
часть функциональности -- не сможет работать
со сжатыми данными.
С libSDL_net-devel проблема немножко серьезнее.
lbreakout2 собирается и без libSDL_net-devel,
но у lbreakout2 есть режим сетевой игры.
для которого libSDL_net-devel и нужен.
Эту ситуацию я называю недособранным пакетом.
В 99% случаев имеющейся функциональности lbreakout2 достаточно,
но если вдруг пришли бы к ребенку гости и дети захотели бы
попробовать по сети сыграть, то --enable-network
был бы кстати.
buildreq-src -bp
________________
Имеющиеся патчи могут существенно изменить пакет,
в частности, поменять его сборочные зависимости.
Поэтому имеет смысл запускать утилиту уже на
правленные исходники. Для удобства, в
buildreq-src есть опция -bp, которая как раз это
и делает: вызывает rpmbuild -bp <name>.spec,
затем напускает buildreq-src на %builddir.
$ buildreq-src -bp lbreakout2.spec
Выполняется(%prep): /bin/sh -e /tmp/rpm-tmp.83798
+ umask 022
+ /bin/mkdir -p /home/RPM/BUILD
+ cd /home/RPM/BUILD
+ cd /home/RPM/BUILD
+ rm -rf lbreakout2-2.6.5
+ echo 'Source #0 (lbreakout2-2.6.5.tar):'
Source #0 (lbreakout2-2.6.5.tar):
+ /bin/tar -xf -
+ cd lbreakout2-2.6.5
+ /bin/chmod -c -Rf u+rwX,go-w .
+ exit 0
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL_net-devel zlib-devel
# END SourceDeps(oneline)
Секция BEGIN/END SourceDeps
___________________________
Если все найденные зависимости уже есть в spec файле,
buildreq-src выдаст сообщение
buildreq-src: c2050.spec already contains all found dependencies
если каких-то зависимостей нет, то они будут выведены в виде
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL_net-devel zlib-devel
# END SourceDeps(oneline)
здесь "# BEGIN SourceDeps(oneline):" и "# END SourceDeps(oneline)" --
волшебные комментарии.
BuildRequires: libSDL_net-devel zlib-devel,
которые нашла buildreq-src, можно вставить
в lbreakout2.spec руками. Однако если добавить
опцию --update (примеры вызова:)
buildreq-src --update --spec lbreakout2.spec ../SOURCES/lbreakout2-2.6.5.tar.gz
buildreq-src --update -bp lbreakout2.spec
то buildreq-src вставит в lbreakout2.spec фрагмент
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL_net-devel zlib-devel
# END SourceDeps(oneline)
как раз в окружении волшебных комментариев.
Эти комментарии очень важны: они позволяют организовать
полуавтоматическое обновление сборочных зависимостей пакета.
Работает оно следующим образом: без опции --update
buildreq-src вообще не трогает пакет. С опцией --update
buildreq-src правит только то, что находится между
# BEGIN SourceDeps(oneline):
и
# END SourceDeps(oneline)
Все, что вне, считается неприкосновенным.
Как это работает: пусть у нас в lbreakout2.spec вручную вписано
BuildRequires: libSDL-devel libSDL_mixer-devel
BuildRequires: libpng-devel zlib-devel
и в новой версии lbreakout2 переехал на libSDL2.
Вызовем buildreq-src --update ...
утилита вставит в спек новые найденные зависимости
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL2-devel libSDL2_mixer-devel libSDL2_net-devel
# END SourceDeps(oneline)
но старые устаревшие
BuildRequires: libSDL-devel libSDL_mixer-devel
останутся, так как они внесены вручную, а майнтайнер всегда прав.
Если же в спеке было
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL-devel libSDL_mixer-devel libSDL_net-devel
# END SourceDeps(oneline)
то после вызова buildreq-src --update ...
# BEGIN SourceDeps(oneline):
BuildRequires: libSDL2-devel libSDL2_mixer-devel libSDL2_net-devel
# END SourceDeps(oneline)
т.е. новые автонайденные зависимости перезапишут собой старые
автонайденные зависимости и старые устаревшие зависимости
libSDL-devel libSDL_mixer-devel удалятся из спека.
В итоге получается
полуавтоматическое обновление сборочных зависимостей пакета.
Формат найденных зависимостей.
______________________________
По умолчанию, buildreq-src там, где можно, пытается вывести найденные
зависимости в пакетнонезависимом формате, так, как они упоминаются в тексте:
# BEGIN SourceDeps(oneline):
BuildRequires: /usr/bin/glib-gettextize perl(GD/Text/Wrap.pm) pkgconfig(cairo)
# END SourceDeps(oneline)
Это поведение можно изменить, указав
--sourcedep-resolve=all
или, что то же самое
--sourcedep-resolve=path,perl,pkgconfig
получим более привычные
# BEGIN SourceDeps(oneline):
BuildRequires: glib2-devel perl-GD-Text libcairo-devel
# END SourceDeps(oneline)
В следующем письме алгоритм работы утилиты,
известные баги и фичи. Содержание:
в силу самого своего алгоритма
buildreq-src сожет зачерпнуть (и зачерпывает) и реально не нужные,
лишние зависимости. Как их распознать и как с этим бороться.
Как помочь утилите, когда она не справляется.
Продолжение следует.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-14 16:40 [devel] I: Утилита buildreq-src Igor Vlasenko
@ 2016-03-15 7:23 ` Andrey Cherepanov
2016-03-15 13:32 ` Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Andrey Cherepanov @ 2016-03-15 7:23 UTC (permalink / raw)
To: devel
14.03.2016 19:40, Igor Vlasenko пишет:
> в силу самого своего алгоритма
> buildreq-src сожет зачерпнуть (и зачерпывает) и реально не нужные,
> лишние зависимости. Как их распознать и как с этим бороться.
> Как помочь утилите, когда она не справляется.
> Продолжение следует.
Игорь, эвристика работы утилиты требует наличия установленных
потенциальных пакетов -devel?
--
Andrey Cherepanov
cas@altlinux.org
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-15 7:23 ` Andrey Cherepanov
@ 2016-03-15 13:32 ` Igor Vlasenko
2016-03-16 4:23 ` Hihin Ruslan
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-15 13:32 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Tue, Mar 15, 2016 at 10:23:11AM +0300, Andrey Cherepanov wrote:
> 14.03.2016 19:40, Igor Vlasenko пишет:
> > в силу самого своего алгоритма
> > buildreq-src сожет зачерпнуть (и зачерпывает) и реально не нужные,
> > лишние зависимости. Как их распознать и как с этим бороться.
> > Как помочь утилите, когда она не справляется.
> > Продолжение следует.
> Игорь, эвристика работы утилиты требует наличия установленных
> потенциальных пакетов -devel?
Нет, не требует.
buildreq-src нужен, когда мы не знаем, чего устанавливать.
Если мы уже знаем и установили все потенциальные пакеты -devel,
то уже актуальна вторая задача - убрать лишнее,
для чего есть /usr/bin/buildreq из rpm-utils от at@.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-15 13:32 ` Igor Vlasenko
@ 2016-03-16 4:23 ` Hihin Ruslan
2016-03-16 7:55 ` Anton V. Boyarshinov
2016-03-16 8:49 ` [devel] I: Утилита buildreq-src Igor Vlasenko
0 siblings, 2 replies; 28+ messages in thread
From: Hihin Ruslan @ 2016-03-16 4:23 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1380 bytes --]
Здравствуйте Igor Vlasenko
В сообщении от 15 марта 2016 Igor Vlasenko написал(a):
> On Tue, Mar 15, 2016 at 10:23:11AM +0300, Andrey Cherepanov
wrote:
> > 14.03.2016 19:40, Igor Vlasenko пишет:
> > > в силу самого своего алгоритма
> > > buildreq-src сожет зачерпнуть (и зачерпывает) и реально не
> > > нужные, лишние зависимости. Как их распознать и как с этим
> > > бороться. Как помочь утилите, когда она не справляется.
> > > Продолжение следует.
> >
> > Игорь, эвристика работы утилиты требует наличия
> > установленных потенциальных пакетов -devel?
>
> Нет, не требует.
> buildreq-src нужен, когда мы не знаем, чего устанавливать.
>
> Если мы уже знаем и установили все потенциальные пакеты
> -devel, то уже актуальна вторая задача - убрать лишнее,
> для чего есть /usr/bin/buildreq из rpm-utils от at@.
Спасибо за ваш инструмент. Попробовал на palemoon:
BuildRequires: libssl-devel perl(Archive/Zip.pm) perl(CGI.pm)
perl(CGI/Carp.pm) perl(Carp.pm) perl(DBI.pm) perl(Errno.pm)
..............
perl(base.pm) perl(diagnostics.pm) perl(strict.pm) perl(subs.pm)
python-devel texinfo
Вызвало сомнение - неужели нужны все эти перловые модули. Обычный
buildreq этих зависимостей не нашёл (хотя все они были в хешере
установлены).
--
А ещё говорят так (fortune):
.
________________________________________________________________________
С уважением Хихин Руслан
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 4:23 ` Hihin Ruslan
@ 2016-03-16 7:55 ` Anton V. Boyarshinov
2016-03-16 8:10 ` Sergey V Turchin
2016-03-16 8:49 ` [devel] I: Утилита buildreq-src Igor Vlasenko
1 sibling, 1 reply; 28+ messages in thread
From: Anton V. Boyarshinov @ 2016-03-16 7:55 UTC (permalink / raw)
To: devel
> perl(base.pm) perl(diagnostics.pm) perl(strict.pm) perl(subs.pm)
>
> Вызвало сомнение - неужели нужны все эти перловые модули. Обычный
> buildreq этих зависимостей не нашёл (хотя все они были в хешере
> установлены).
Насколько я понимаю по этому выводу, buildreq-src просто не фильтрует
вывод и не удаляет из него то, что вытягивается другими пакетами или
входит в них. Так, например, все перловые модули из процитированного
мной, очевидно, входят в perl-base.
Насколько я понимаю, "очистить" список от излишнего можно при помощи
buildreq.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 7:55 ` Anton V. Boyarshinov
@ 2016-03-16 8:10 ` Sergey V Turchin
2016-03-16 8:18 ` Sergey V Turchin
2016-03-16 9:46 ` Igor Vlasenko
0 siblings, 2 replies; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 8:10 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 10:55:58 MSK Anton V wrote:
[...]
> Насколько я понимаю, "очистить" список от излишнего можно при помощи
> buildreq.
Полезность buildreq-src получается сомнительная, т.к. мне, например, обычно
хочется, чтобы кто-то умел чистить то, что делает buildreq. А в том, что
базово необходимо для сборки, у меня проблем никогда не возникало.
P.S.
Почти во всех своих пакетах я оставляю комментарием результат buildreq, чтобы
можно было сравнить с реальностью.
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:10 ` Sergey V Turchin
@ 2016-03-16 8:18 ` Sergey V Turchin
2016-03-16 8:21 ` Anton Farygin
2016-03-16 9:46 ` Igor Vlasenko
1 sibling, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 8:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 11:10:01 MSK Sergey V wrote:
> On Wednesday, 16 March 2016 10:55:58 MSK Anton V wrote:
>
> [...]
>
> > Насколько я понимаю, "очистить" список от излишнего можно при помощи
> > buildreq.
>
> Полезность buildreq-src получается сомнительная
Разве что, для автомата, который будет после нее использовать buildreq.
[...]
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:18 ` Sergey V Turchin
@ 2016-03-16 8:21 ` Anton Farygin
2016-03-16 10:17 ` Sergey V Turchin
2016-03-16 10:18 ` [devel] I: Утилита buildreq-src Igor Vlasenko
0 siblings, 2 replies; 28+ messages in thread
From: Anton Farygin @ 2016-03-16 8:21 UTC (permalink / raw)
To: devel
On 16.03.2016 11:18, Sergey V Turchin wrote:
> On Wednesday, 16 March 2016 11:10:01 MSK Sergey V wrote:
>> On Wednesday, 16 March 2016 10:55:58 MSK Anton V wrote:
>>
>> [...]
>>
>>> Насколько я понимаю, "очистить" список от излишнего можно при помощи
>>> buildreq.
>>
>> Полезность buildreq-src получается сомнительная
> Разве что, для автомата, который будет после нее использовать buildreq.
>
> [...]
>
buildreq-src нужен для того, что бы не устанавливать все devel пакеты
себе в хост-систему.
т.е. - выполняешь buildreq-src, полученный хлам используешь в
hsh-initroot и уже там запускаешь buildreq.
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:21 ` Anton Farygin
@ 2016-03-16 10:17 ` Sergey V Turchin
2016-03-16 10:27 ` Igor Vlasenko
2016-03-16 10:18 ` [devel] I: Утилита buildreq-src Igor Vlasenko
1 sibling, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 10:17 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 11:21:12 MSK Anton Farygin wrote:
[...]
> buildreq-src нужен для того, что бы не устанавливать все devel пакеты
> себе в хост-систему.
>
> т.е. - выполняешь buildreq-src, полученный хлам используешь в
> hsh-initroot и уже там запускаешь buildreq.
kde5-* она, похоже, не осилит.
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:17 ` Sergey V Turchin
@ 2016-03-16 10:27 ` Igor Vlasenko
2016-03-16 10:36 ` Sergey V Turchin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 10:27 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 01:17:25PM +0300, Sergey V Turchin wrote:
> On Wednesday, 16 March 2016 11:21:12 MSK Anton Farygin wrote:
>
> [...]
> > buildreq-src нужен для того, что бы не устанавливать все devel пакеты
> > себе в хост-систему.
> >
> > т.е. - выполняешь buildreq-src, полученный хлам используешь в
> > hsh-initroot и уже там запускаешь buildreq.
> kde5-* она, похоже, не осилит.
Осилить могла бы, она просто не настроена нормально для
kde4/kf5. Так исторически сложилось, что я писал
библиотеку для нужд импорта пакетов.
А так как вы хороший майнтайнер, то вы все в Сизиф собрали сами,
соответственно, для autoimports kde4/kf5 пакетов осталось мало,
и мне не осталось кошек, на каких бы я тренировал библиотеку :(
Я если что тогда буду спрашивать.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:27 ` Igor Vlasenko
@ 2016-03-16 10:36 ` Sergey V Turchin
2016-03-16 10:40 ` Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 10:36 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 12:27:19 MSK Igor Vlasenko wrote:
> On Wed, Mar 16, 2016 at 01:17:25PM +0300, Sergey V Turchin wrote:
> > On Wednesday, 16 March 2016 11:21:12 MSK Anton Farygin wrote:
> >
> > [...]
> >
> > > buildreq-src нужен для того, что бы не устанавливать все devel пакеты
> > > себе в хост-систему.
> > >
> > > т.е. - выполняешь buildreq-src, полученный хлам используешь в
> > > hsh-initroot и уже там запускаешь buildreq.
> >
> > kde5-* она, похоже, не осилит.
>
> Осилить могла бы, она просто не настроена нормально для
> kde4/kf5. Так исторически сложилось, что я писал
> библиотеку для нужд импорта пакетов.
>
> А так как вы хороший майнтайнер, то вы все в Сизиф собрали сами,
> соответственно, для autoimports kde4/kf5 пакетов осталось мало,
> и мне не осталось кошек, на каких бы я тренировал библиотеку :(
На существующих разве нельзя?
> Я если что тогда буду спрашивать.
Ok.
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:36 ` Sergey V Turchin
@ 2016-03-16 10:40 ` Igor Vlasenko
2016-03-16 10:53 ` Sergey V Turchin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 10:40 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 01:36:55PM +0300, Sergey V Turchin wrote:
> > Осилить могла бы, она просто не настроена нормально для
> > kde4/kf5. Так исторически сложилось, что я писал
> > библиотеку для нужд импорта пакетов.
> >
> > А так как вы хороший майнтайнер, то вы все в Сизиф собрали сами,
> > соответственно, для autoimports kde4/kf5 пакетов осталось мало,
> > и мне не осталось кошек, на каких бы я тренировал библиотеку :(
> На существующих разве нельзя?
Будь у меня тысяча рук...
Только недавно добавил на троечку работающую
поддержку CMake.
а поддержки python еще совсем нет...
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:40 ` Igor Vlasenko
@ 2016-03-16 10:53 ` Sergey V Turchin
2016-03-16 22:01 ` [devel] Утилита buildreq-src и KF5 Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 10:53 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 12:40:09 MSK Igor Vlasenko wrote:
[...]
> Только недавно добавил на троечку работающую
> поддержку CMake.
Я об этом и пришёл.
Там зависимости вида
find_package(KF5 "${KF5_DEP_VERSION}" COMPONENTS
Activities
DocTools
)
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* [devel] Утилита buildreq-src и KF5
2016-03-16 10:53 ` Sergey V Turchin
@ 2016-03-16 22:01 ` Igor Vlasenko
2016-03-17 8:13 ` Sergey V Turchin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 22:01 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Sergey V Turchin
On Wed, Mar 16, 2016 at 01:53:16PM +0300, Sergey V Turchin wrote:
> On Wednesday, 16 March 2016 12:40:09 MSK Igor Vlasenko wrote:
>
> [...]
> > Только недавно добавил на троечку работающую
> > поддержку CMake.
> Я об этом и пришёл.
> Там зависимости вида
> find_package(KF5 "${KF5_DEP_VERSION}" COMPONENTS
> Activities
> DocTools
> )
Отправил perl-RPM-Source-Dependency-Analyzer-0.029-alt1.src.rpm
там есть поддержка COMPONENTS в find_package
но еще нет поддержки KF5. К примеру,
$ buildreq-src baloo-5.19.0.tar
info: CMAKE: find_package(KF5::CoreAddons) not added to SourceAnalyzer db, skipped
# BEGIN SourceDeps(oneline):
BuildRequires: /usr/bin/ecm gcc-c++ liblmdb-devel qt5-base-devel qt5-declarative-devel
# END SourceDeps(oneline)
Теперь мне надо список компонент KF5 -
я вроде бы нашел
/usr/share/ECM/find-modules/FindKF5.cmake extra-cmake-modules
но не понял, как определить, какие в KF5 есть компоненты.
Сергей, нуждаюсь в твоем совете.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] Утилита buildreq-src и KF5
2016-03-16 22:01 ` [devel] Утилита buildreq-src и KF5 Igor Vlasenko
@ 2016-03-17 8:13 ` Sergey V Turchin
2016-03-17 10:28 ` Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-17 8:13 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Thursday, 17 March 2016 00:01:35 MSK Igor Vlasenko wrote:
> On Wed, Mar 16, 2016 at 01:53:16PM +0300, Sergey V Turchin wrote:
> > On Wednesday, 16 March 2016 12:40:09 MSK Igor Vlasenko wrote:
> >
> > [...]
> >
> > > Только недавно добавил на троечку работающую
> > > поддержку CMake.
> >
> > Я об этом и пришёл.
> > Там зависимости вида
> > find_package(KF5 "${KF5_DEP_VERSION}" COMPONENTS
> >
> > Activities
> > DocTools
> >
> > )
>
> Отправил perl-RPM-Source-Dependency-Analyzer-0.029-alt1.src.rpm
>
> там есть поддержка COMPONENTS в find_package
> но еще нет поддержки KF5. К примеру,
> $ buildreq-src baloo-5.19.0.tar
> info: CMAKE: find_package(KF5::CoreAddons) not added to SourceAnalyzer db,
> skipped # BEGIN SourceDeps(oneline):
> BuildRequires:
> /usr/bin/ecm
Лишний, если что.
> gcc-c++ liblmdb-devel qt5-base-devel
> qt5-declarative-devel # END SourceDeps(oneline)
>
> Теперь мне надо список компонент KF5 -
> я вроде бы нашел
> /usr/share/ECM/find-modules/FindKF5.cmake extra-cmake-modules
Он тоже должен попадать в сборочные зависимости.
> но не понял, как определить, какие в KF5 есть компоненты.
По имени каталога %_libdir/cmake/KF5*
> Сергей, нуждаюсь в твоем совете.
Они в extra-cmake-modules так на...вертили скрипты, что я зачастую с трудом
понимаю. :-)
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] Утилита buildreq-src и KF5
2016-03-17 8:13 ` Sergey V Turchin
@ 2016-03-17 10:28 ` Igor Vlasenko
2016-03-17 11:00 ` Sergey V Turchin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-17 10:28 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Sergey V Turchin
On Thu, Mar 17, 2016 at 11:13:23AM +0300, Sergey V Turchin wrote:
> > /usr/bin/ecm
> Лишний, если что.
Спасибо, поправил. Будет в 0.30
> > но не понял, как определить, какие в KF5 есть компоненты.
> По имени каталога %_libdir/cmake/KF5*
Ок, понял. я тогда универсальную систему напишу -
repocop будет собирать базу внешних к CMake devel пакетов,
которые таскают с собой cmake файлы.
Тогда легко резолвить:
пробили по базе find_package(KF5 COMPONENTS XmlRpcClient)
выпало
/usr/lib64/cmake/KF5XmlRpcClient -> kf5-kxmlrpcclient-devel
Это, наверное, уже в 0.31
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] Утилита buildreq-src и KF5
2016-03-17 10:28 ` Igor Vlasenko
@ 2016-03-17 11:00 ` Sergey V Turchin
0 siblings, 0 replies; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-17 11:00 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Thursday, 17 March 2016 12:28:04 MSK Igor Vlasenko wrote:
> On Thu, Mar 17, 2016 at 11:13:23AM +0300, Sergey V Turchin wrote:
> > > /usr/bin/ecm
> >
> > Лишний, если что.
>
> Спасибо, поправил. Будет в 0.30
>
> > > но не понял, как определить, какие в KF5 есть компоненты.
> >
> > По имени каталога %_libdir/cmake/KF5*
>
> Ок, понял. я тогда универсальную систему напишу -
> repocop будет собирать базу внешних к CMake devel пакетов,
> которые таскают с собой cmake файлы.
>
> Тогда легко резолвить:
> пробили по базе find_package(KF5 COMPONENTS XmlRpcClient)
> выпало
> /usr/lib64/cmake/KF5XmlRpcClient -> kf5-kxmlrpcclient-devel
Да.
Еще я замечал ругань cmake при ненахождении компонента про то, что в нижнем
регистре тоже может лежать на диске.
Ругань типа:
Could not find a package configuration file with any of the following names:
KF5XmlRpcClientConfig.cmake
kf5xmlrpcclient-config.cmake
Но, т.к. сам файлов в нижнем регистре не встречал пока, полагаю, не актуально.
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:21 ` Anton Farygin
2016-03-16 10:17 ` Sergey V Turchin
@ 2016-03-16 10:18 ` Igor Vlasenko
2016-03-16 10:24 ` Sergey V Turchin
1 sibling, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 10:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 11:21:12AM +0300, Anton Farygin wrote:
> buildreq-src нужен для того, что бы не устанавливать все devel пакеты себе в
> хост-систему.
>
> т.е. - выполняешь buildreq-src, полученный хлам используешь в hsh-initroot и
> уже там запускаешь buildreq.
Это одно применение, а второе важное применение ---
не потеряли ли мы в процессе сопровождения пакета
какую-то важную опциональную зависимость.
Т.е. по хорошему после каждого обновления надо
перечитывать те же configure.ac/CMakeLists.txt.
Не у всех руки доходят каждый раз проверять и перечитывать,
а кто перечитывает, не всегда спасает -
глаз замыливается.
А утилита дает возможность, так сказать, "машинным зрением"
просмотреть и проверить.
Другое дело, что не идеальна еще утилита.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:18 ` [devel] I: Утилита buildreq-src Igor Vlasenko
@ 2016-03-16 10:24 ` Sergey V Turchin
2016-03-16 10:36 ` Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 10:24 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 12:18:10 MSK Igor Vlasenko wrote:
> On Wed, Mar 16, 2016 at 11:21:12AM +0300, Anton Farygin wrote:
> > buildreq-src нужен для того, что бы не устанавливать все devel пакеты себе
> > в хост-систему.
> >
> > т.е. - выполняешь buildreq-src, полученный хлам используешь в hsh-initroot
> > и уже там запускаешь buildreq.
>
> Это одно применение, а второе важное применение ---
> не потеряли ли мы в процессе сопровождения пакета
> какую-то важную опциональную зависимость.
>
> Т.е. по хорошему после каждого обновления надо
> перечитывать те же configure.ac/CMakeLists.txt.
Во время configure/cmake они сами рассказывают, чего не хватает.
Тут, скорее, другая проблема. У мантейнера в локальной системе всё ок, а в
логи сборочницы он не всегда смотрит, а там может оказаться оказывается, что с
чем-то не дособралось.
Поэтому и говорю, что полезно для автомата, который будет подсказывать
мантейнерам.
[...]
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:24 ` Sergey V Turchin
@ 2016-03-16 10:36 ` Igor Vlasenko
2016-03-16 10:42 ` Sergey V Turchin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 10:36 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 01:24:26PM +0300, Sergey V Turchin wrote:
> > Т.е. по хорошему после каждого обновления надо
> > перечитывать те же configure.ac/CMakeLists.txt.
> Во время configure/cmake они сами рассказывают, чего не хватает.
Увы и ах. я сейчас не помню конкретные имена,
но среди того списка 20 c*.src.rpm который к вечеру подготовлю,
есть живые примеры, которые без явного пинка в виде
--enable foo не чесались чего-либо проверять или рассказывать.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:36 ` Igor Vlasenko
@ 2016-03-16 10:42 ` Sergey V Turchin
0 siblings, 0 replies; 28+ messages in thread
From: Sergey V Turchin @ 2016-03-16 10:42 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wednesday, 16 March 2016 12:36:19 MSK Igor Vlasenko wrote:
> On Wed, Mar 16, 2016 at 01:24:26PM +0300, Sergey V Turchin wrote:
> > > Т.е. по хорошему после каждого обновления надо
> > > перечитывать те же configure.ac/CMakeLists.txt.
> >
> > Во время configure/cmake они сами рассказывают, чего не хватает.
>
> Увы и ах. я сейчас не помню конкретные имена,
> но среди того списка 20 c*.src.rpm который к вечеру подготовлю,
> есть живые примеры, которые без явного пинка в виде
> --enable foo не чесались чего-либо проверять или рассказывать.
Ааа, да. Бывают такие, но зачастую они и не рекомендуют с этим собирать.
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:10 ` Sergey V Turchin
2016-03-16 8:18 ` Sergey V Turchin
@ 2016-03-16 9:46 ` Igor Vlasenko
2016-03-16 10:12 ` Хихин Руслан
1 sibling, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 9:46 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 11:10:01AM +0300, Sergey V Turchin wrote:
> Полезность buildreq-src получается сомнительная, т.к. мне, например, обычно
> хочется, чтобы кто-то умел чистить то, что делает buildreq.
Я как раз и хочу утилиту пообсуждать, чтобы внести изменения,
дружественные к человеку.
Раньше библиотекой в основном только роботы пользовались,
у них таких проблем нет.
А вот людям надо доп. удобства.
> А в том, что базово необходимо для сборки,
> у меня проблем никогда не возникало.
С базовым набором зависимостей проблем нет -- программа просто не
соберется без базового набора зависимостей.
А с опциональными зависимостями как раз и проблемы --
программа собирается и работает, но части возможностей
нет. Или звука нет, или сети, или не открывается что-то и т.д.
Я вот сделал эксперимент, прогнал через утилиту пакеты Сизифа
на с*. на 400 пакетов 20 недособраны (по недосмотру урезана
функциональность).
5% в масштабах Сизифа -- это очень и очень много.
И как такие проблемы выявлять без утилит наподобие
buildreq-src, непонятно.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 9:46 ` Igor Vlasenko
@ 2016-03-16 10:12 ` Хихин Руслан
2016-03-16 10:22 ` Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Хихин Руслан @ 2016-03-16 10:12 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 477 bytes --]
Здравствуйте !
On Wednesday 16 March 2016 12:46:58 Igor Vlasenko написал(а):
> Я вот сделал эксперимент, прогнал через утилиту пакеты Сизифа
> на с*. на 400 пакетов 20 недособраны (по недосмотру урезана
> функциональность).
А где-то озвучить список этих пакетов нельзя? Я думаю, это всем интересно.
Кстати, если мне придёт письмо от робота, а такой возможности в каком-то моём
пакете, я был-бы очень рад :)
ЗЫ Хорошее это дело вы "затеяли".
--
C уважением, Хихин Руслан.
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:12 ` Хихин Руслан
@ 2016-03-16 10:22 ` Igor Vlasenko
2016-03-16 13:40 ` Anton Farygin
0 siblings, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 10:22 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 01:12:40PM +0300, Хихин Руслан wrote:
> Здравствуйте !
> On Wednesday 16 March 2016 12:46:58 Igor Vlasenko написал(а):
>
> > Я вот сделал эксперимент, прогнал через утилиту пакеты Сизифа
> > на с*. на 400 пакетов 20 недособраны (по недосмотру урезана
> > функциональность).
>
> А где-то озвучить список этих пакетов нельзя? Я думаю, это всем интересно.
Хочу еще к нему предисловие написать,
сегодня вечером или завтра будет готово, надеюсь.
> Кстати, если мне придёт письмо от робота, а такой возможности в каком-то моём
> пакете, я был-бы очень рад :)
К сожалению, утилита еще не совершенна,
надо, чтобы человек просматривал ее выхлоп.
Но это уже прогресс -- посмотреть выхлоп утилиты
в 100 раз проще, чем исходники вычитывать.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 10:22 ` Igor Vlasenko
@ 2016-03-16 13:40 ` Anton Farygin
2016-03-17 14:06 ` [devel] ужасные исходники [ I: Утилита buildreq-src] Igor Vlasenko
0 siblings, 1 reply; 28+ messages in thread
From: Anton Farygin @ 2016-03-16 13:40 UTC (permalink / raw)
To: devel
On 16.03.2016 13:22, Igor Vlasenko wrote:
> К сожалению, утилита еще не совершенна,
> надо, чтобы человек просматривал ее выхлоп.
> Но это уже прогресс -- посмотреть выхлоп утилиты
> в 100 раз проще, чем исходники вычитывать.
А зачем вычитывать исходники, если можно посмотреть выхлоп configure
???
^ permalink raw reply [flat|nested] 28+ messages in thread
* [devel] ужасные исходники [ I: Утилита buildreq-src]
2016-03-16 13:40 ` Anton Farygin
@ 2016-03-17 14:06 ` Igor Vlasenko
0 siblings, 0 replies; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-17 14:06 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 04:40:40PM +0300, Anton Farygin wrote:
> On 16.03.2016 13:22, Igor Vlasenko wrote:
> >К сожалению, утилита еще не совершенна,
> >надо, чтобы человек просматривал ее выхлоп.
> >Но это уже прогресс -- посмотреть выхлоп утилиты
> >в 100 раз проще, чем исходники вычитывать.
>
> А зачем вычитывать исходники, если можно посмотреть выхлоп configure
> ???
Потому что надеяться на выхлоп configure, это как
надеяться на вменяемость апстрима.
Хорошо, когда она есть, но никто ее не гарантирует.
Вот пример из жизни: [ cfitsio-3.370/configure.in ]
AC_ARG_WITH(
bzip2,
[AS_HELP_STRING([--with-bzip2[[=PATH]]],[Enable bzip2. Optional path to the he
ader file bzlib.h])],
[ if test "x$withval" != "xno"; then
if test "x$withval" != "xyes" ; then
CFLAGS="$CFLAGS -I${withval}"
fi
AC_CHECK_HEADERS(bzlib.h)
HAVE_BZIP2=yes
AC_DEFINE(HAVE_BZIP2,1,[Define if you want bzip2 read support])
fi
],
[AC_CHECK_HEADERS(bzlib.h)
HAVE_BZIP2=yes
AC_DEFINE(HAVE_BZIP2,1,[Define if you want bzip2 read support])
]
)
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 4:23 ` Hihin Ruslan
2016-03-16 7:55 ` Anton V. Boyarshinov
@ 2016-03-16 8:49 ` Igor Vlasenko
2016-03-16 9:03 ` Anton V. Boyarshinov
1 sibling, 1 reply; 28+ messages in thread
From: Igor Vlasenko @ 2016-03-16 8:49 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Wed, Mar 16, 2016 at 07:23:12AM +0300, Hihin Ruslan wrote:
> Спасибо за ваш инструмент. Попробовал на palemoon:
>
> BuildRequires: libssl-devel perl(Archive/Zip.pm) perl(CGI.pm)
> perl(CGI/Carp.pm) perl(Carp.pm) perl(DBI.pm) perl(Errno.pm)
> ..............
> perl(base.pm) perl(diagnostics.pm) perl(strict.pm) perl(subs.pm)
> python-devel texinfo
Спасибо!
Упомянутая вами простыня действительно слишком раздута
пакетом perl-base, при чем в виде списка на двадцать позиций.
Однако perl действительно нужен для palemoon. Из лога сборки:
[...]
checking for perl5... /usr/bin/perl5
checking for minimum required perl version >= 5.006... 5.022001
checking for full perl installation... yes
checking for perl5... /usr/bin/perl5
checking for perl5... (cached) /usr/bin/perl5
checking for minimum required perl version >= 5.006... 5.022001
checking for full perl installation... yes
Если просто добавить
BuildRequires: perl, то указанная простыня пропадет.
И это имеет смысл: сейчас perl не прописан в BuildRequires
у palemoon, но вытягивается кем-то по зависимостям
помимо вашей воли и контроля.
Завтра может и перестать вытягиваться.
--
I V
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [devel] I: Утилита buildreq-src
2016-03-16 8:49 ` [devel] I: Утилита buildreq-src Igor Vlasenko
@ 2016-03-16 9:03 ` Anton V. Boyarshinov
0 siblings, 0 replies; 28+ messages in thread
From: Anton V. Boyarshinov @ 2016-03-16 9:03 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: vlasenko
В Wed, 16 Mar 2016 10:49:32 +0200
Igor Vlasenko <vlasenko@imath.kiev.ua> пишет:
> И это имеет смысл: сейчас perl не прописан в BuildRequires
> у palemoon, но вытягивается кем-то по зависимостям
> помимо вашей воли и контроля.
> Завтра может и перестать вытягиваться.
perl-base вытягивается пакетом rpm-build
Может быть это, когда-нибудь и изменится, но это приведёт к разлому
весьма значительного числа пакетов, как я понимаю.
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2016-03-17 14:06 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-14 16:40 [devel] I: Утилита buildreq-src Igor Vlasenko
2016-03-15 7:23 ` Andrey Cherepanov
2016-03-15 13:32 ` Igor Vlasenko
2016-03-16 4:23 ` Hihin Ruslan
2016-03-16 7:55 ` Anton V. Boyarshinov
2016-03-16 8:10 ` Sergey V Turchin
2016-03-16 8:18 ` Sergey V Turchin
2016-03-16 8:21 ` Anton Farygin
2016-03-16 10:17 ` Sergey V Turchin
2016-03-16 10:27 ` Igor Vlasenko
2016-03-16 10:36 ` Sergey V Turchin
2016-03-16 10:40 ` Igor Vlasenko
2016-03-16 10:53 ` Sergey V Turchin
2016-03-16 22:01 ` [devel] Утилита buildreq-src и KF5 Igor Vlasenko
2016-03-17 8:13 ` Sergey V Turchin
2016-03-17 10:28 ` Igor Vlasenko
2016-03-17 11:00 ` Sergey V Turchin
2016-03-16 10:18 ` [devel] I: Утилита buildreq-src Igor Vlasenko
2016-03-16 10:24 ` Sergey V Turchin
2016-03-16 10:36 ` Igor Vlasenko
2016-03-16 10:42 ` Sergey V Turchin
2016-03-16 9:46 ` Igor Vlasenko
2016-03-16 10:12 ` Хихин Руслан
2016-03-16 10:22 ` Igor Vlasenko
2016-03-16 13:40 ` Anton Farygin
2016-03-17 14:06 ` [devel] ужасные исходники [ I: Утилита buildreq-src] Igor Vlasenko
2016-03-16 8:49 ` [devel] I: Утилита buildreq-src Igor Vlasenko
2016-03-16 9:03 ` Anton V. Boyarshinov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git