FS#76686 - [makepkg] --printsrcinfo is slow
Attached to Project:
Pacman
Opened by Jelle van der Waa (jelly) - Monday, 28 November 2022, 12:45 GMT
Last edited by Allan McRae (Allan) - Tuesday, 26 September 2023, 02:21 GMT
Opened by Jelle van der Waa (jelly) - Monday, 28 November 2022, 12:45 GMT
Last edited by Allan McRae (Allan) - Tuesday, 26 September 2023, 02:21 GMT
|
Details
Summary and Info:
Sourcing PKGBUILD's isn't a nice approach to interact with PKGBUILD's in other languages, so using SRCINFO files is preferred, however generating these files as slow: Steps to Reproduce: makepkg --printsrcinfo 0.72s user 0.19s system 108% cpu 0.836 total The main offender of slowness seems to be `lint_pkgbuild`: # check the PKGBUILD for some basic requirements -lint_pkgbuild || exit $E_PKGBUILD_ERROR +#lint_pkgbuild || exit $E_PKGBUILD_ERROR /home/jelle/projects/pacman/build/makepkg --printsrcinfo 0.19s user 0.03s system 106% cpu 0.209 total |
This task depends upon
Closed by Allan McRae (Allan)
Tuesday, 26 September 2023, 02:21 GMT
Reason for closing: Deferred
Additional comments about closing: https://gitlab.archlinux.org/pacman/pacm an/-/issues/56
Tuesday, 26 September 2023, 02:21 GMT
Reason for closing: Deferred
Additional comments about closing: https://gitlab.archlinux.org/pacman/pacm an/-/issues/56
for func in ${lint_pkgbuild_functions[@]}; do
$func || ret=1
done
How high throughput do you need this to be?
Note that the linting issue will become exponentially worse, I also found out that lint_{make,check,opt}depends are all almost the same code but in a separate file.
However, I did notice the output was actually wrong for all the i18n packages due to the nesting of functions. I do not consider that a makepkg issue, and it can be fixed in the PKGBUILD.
The question remains whether we can do this in parallel. After a quick look, I can't figure out how to do that and keep the output useful in the case of issues being found.
There is no exponential order checks being performed.