[devel] PoC: gear-submodule-update Ex: Новая схема ведения исходников ядра

Alexey Gladkov legion на altlinux.ru
Ср Янв 12 15:40:03 MSK 2022


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

а не этот ужасный блок ?

+               fi
+       fi

> но всё равно у меня нет полной уверенности, что предпоследний коммит,
> который обрабатывает .gear/submodules/list в gear, делает это совершенно
> безопасно.
> 
> 
> -- 
> ldv
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

-- 
Rgrds, legion



Подробная информация о списке рассылки Devel