pikaur icon indicating copy to clipboard operation
pikaur copied to clipboard

Pikaur is not installing debug symbols package generated by `debug+strip` option combination in PKGBUILD

Open Aloxaf opened this issue 5 years ago • 6 comments

> pikaur -Vq
Pikaur v1.6.10
Pacman v5.2.1 - libalpm v12.0.1
Steps:
git clone https://git.archlinux.org/svntogit/packages.git/ -b packages/glibc --single-branch /tmp/glibc
sed -i 's#!strip#debug#' /tmp/glibc/repos/core-x86_64/PKGBUILD
echo Y | pikaur -P --noedit --mflags=--nocheck /tmp/glibc/repos/core-x86_64/PKGBUILD

I only got glibc-2.31-5-x86_64.pkg.tar.zst and lib32-glibc-2.31-5-x86_64.pkg.tar.zst. glibc-debug-2.31-5-x86_64.pkg.tar.zst is missing.

The debug package was generated in ~/.cache/pikaur/build/glibc, but pikaur didn't copy it to ~/.cache/pikaur/pkg.

Aloxaf avatar Jun 18 '20 07:06 Aloxaf

$ git clone https://git.archlinux.org/svntogit/packages.git/ -b packages/glibc --single-branch /tmp/glibc
$ cd /tmp/glibc/repos/core-x86_64/
$ mksrcinfo
$ grep pkgname .SRCINFO
pkgname = glibc
pkgname = lib32-glibc

actionless avatar Jun 18 '20 20:06 actionless

Hello! Given this is a "good first issue", can you provide some recommendation how to approach this? I was bitten by this and would try to fix it, if I knew what approach is preferred.

What's the principal issue? That srcinfo does not explicitly list debug packages in list of pkgnames? Or something else?

pspacek avatar Jan 26 '22 10:01 pspacek

in SrcInfo/AUR rpc parsers (srcinfo.py, aur.py), in the routines which are determining which packagenames will be built (ie like for multi-packages) - and in case if that debug thing turned on - to return those extra -debug package names

and in installation routine (install_info_fetcher.py, install_cli.py) do same thing - if debug thing turned add those -debug to list of packages to be installed

actionless avatar Jan 26 '22 12:01 actionless

Great, thank you for intro! I will check if/when makepkg can possibly not generate -debug packages even though debug option is enabled.

pspacek avatar Jan 26 '22 15:01 pspacek

Hmm, I should have looked right away. It might get hairy because makepkg decides based on results of package build, not simply based on options. Specifically, makepkg does not generate -debug package if dir_is_empty "$pkgdir/usr/lib/debug". Is there a sensible way to extend list of packages to be installed only after they are built by pikaur?

pspacek avatar Jan 26 '22 15:01 pspacek

in build.py there should be some routine which is analysing the output of makepkg --packagelist, which i believe should show the presence of potential -debug package

actionless avatar Jan 26 '22 16:01 actionless