actionless / pikaur

AUR helper with minimal dependencies. Review PKGBUILDs all in once, next build them all without user interaction.
GNU General Public License v3.0
868 stars 87 forks source link

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

Open Aloxaf opened 4 years ago

Aloxaf commented 4 years ago
> 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.

actionless commented 4 years ago
$ 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
pspacek commented 2 years ago

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?

actionless commented 2 years ago

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

pspacek commented 2 years ago

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

pspacek commented 2 years ago

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?

actionless commented 2 years ago

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