[devel] PoC: gear-submodule-update Ex: Новая схема ведения исходников ядра
Alexey Gladkov
legion на altlinux.ru
Ср Янв 12 15:53:53 MSK 2022
On Wed, Jan 12, 2022 at 01:40:03PM +0100, Alexey Gladkov wrote:
> On Wed, Jan 12, 2022 at 03:20:51PM +0300, Dmitry V. Levin wrote:
> > On Wed, Jan 12, 2022 at 03:39:20AM +0300, Dmitry V. Levin wrote:
> > > On Wed, Jan 12, 2022 at 03:26:55AM +0300, Vitaly Chikunov wrote:
> > > > On Tue, Jan 11, 2022 at 12:10:52PM +0300, Sergey V Turchin wrote:
> > > > > On Tuesday, 11 January 2022 11:55:20 MSK Paul Wolneykien wrote:
> > > > >
> > > > > [...]
> > > > > > Возможно, это повод для FR к gear: чтобы он поддерживал в rules ссылки на
> > > > > > внешние репозитории или подмодули.
> > > > > Возможно, с появлением gear все этого уже ждут. ;-)
> > > > > https://bugs.altlinux.org/17914
> > > >
> > > > Возможны разные попытки решения этой проблемы.
> > > > Вот Proof of Concept code
> > > > gitery:/people/vt/private/gear-submodule-update.git
> > > > который делает фиктивный merge всем submodules и меняет rules и spec
> > > > так чтоб они разтаривались при сборке.
> > > >
> > > > Это решение чисто экспериментальное (as in no warranty), но, возможно,
> > > > оно вдохновит кого-то на более правильное решение.
> > >
> > > Есть ещё
> > > https://git.altlinux.org/people/ldv/packages/?p=gear.git;a=shortlog;h=refs/heads/legion/patchset/submodule-support/v5
> > > но я его не смог дочитать.
> >
> > Вроде бы дочитал, отредактировал, запушил в
> > https://git.altlinux.org/people/ldv/packages/?p=gear.git;a=shortlog;h=submodules
>
> + if [ -s "$workdir/listed_bundles" ]; then
> + sort -u -o "$workdir/listed_bundles"{,}
> + >> "$workdir/appended_bundles"
>
> Кажется что-то пошло не так при редактировании.
> Разве не должно быть
>
> sort -u -o "$workdir/listed_bundles"{,} \
> >> "$workdir/appended_bundles"
>
> ?
>
> Отредактированные коммиты точно тесты проходят ? )))
>
> + sort -u -o "$workdir/appended_bundles"{,}
> + comm -23 "$workdir/listed_bundles" \
> + "$workdir/appended_bundles" \
> + > "$workdir/unused_submodules"
> + if [ -s "$workdir/unused_submodules" ]; then
> + lineno=0
> + local rules='.gear/submodules/list'
> + local bundle sm_hash sm_path dummy
> + while read -r bundle sm_hash sm_path dummy; do {
> + lineno=$(($lineno + 1))
> + grep -Fxqse "$lineno" "$workdir/unused_submodules" ||
> + continue
> + rules_info "unused bundle: $sm_path"
> + } < /dev/null; done < "$workdir/submodules_list"
>
> Может лучше
>
> grep -Fxqse "$lineno" "$workdir/unused_submodules" < /dev/null
>
> а не этот ужасный блок ?
В других местах я вижу ты тоже такую конструкцию добавил.
Я бы сделал:
exec 4</etc/passwd
while read -r line <&4; do
echo "# $line"
done
exec 4<&-
хоть и придётся обрабатывать закрытие декриптора в некоторых случаях. Зато
выглядит более читабильно.
--
Rgrds, legion
Подробная информация о списке рассылки Devel