You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 31, 2018. It is now read-only.
Prior to pacaur 4.4.0 (November 2015), the installation of built package was done though makepkg -i. As this flag installed all subpackages of a split package by default, the additional --pkg flag was used to selectively install the relevant subpackages of split packages.
However, this --pkg flag was removed in pacman 5.0 with the buggy ability to build individual packages, leaving no choice but to use pacman -U to install (split) packages correctly (#364) by passing the full path to the package file, including its full version for a robuster implementation. The version string is retrieved from the RPC interface, which itself retrieves it from the .SRCINFO file that is normally updated at the same time each PKGBUILD updates occur by packages maintainers.
Unfortunately, maintainers sometimes forget to update this .SRCINFO file, leaving the AUR interface and the RPC with obsolete information. Pacaur still relies on the retrieved RPC version string for installation. If a discrepancy is detected (expected built package not found), pacaur simply aborts and display the infamous "failed to install" message:
:: Installing X package(s)...
:: X package(s) failed to install.
:: ensure package version does not mismatch between .SRCINFO and PKGBUILD
:: ensure package name has a VCS suffix if this is a devel package
While some workaround are possible and even necessary for VCS packages (#428), the choice to error out with regular package is consciously done to incite users to report the issue to the maintainer in order to fix it.
In other words, I prefer to let AUR maintainers fix issues that should be fixed by them (in PKGBUILDs or outdated .SRCINFO) rather than implementing workarounds, and I am personally fine to bother and incite users to help maintain the AUR and its metadata. This seems to be, however, a controversial stance but I do consider it the lesser of two evils, considering the popularity of pacaur.
Now onto related issues and possible improvements:
The implementation as currently done is very lazy: it's a quick hack implemented at installation time in the very place where the old makepkg -i --pkg operation occured. It should be possible to move this version check earlier, compare the version of all packages on the build queue together and error out much earlier (ideally before any build occurs);
The ideal solution would be to find a way to prevent the .SRCINFO update mishap. This has been brought to the AUR dev team already (FS#46130), but only a very partial solution has been implemented so far.
Prior to
pacaur 4.4.0(November 2015), the installation of built package was done thoughmakepkg -i. As this flag installed all subpackages of a split package by default, the additional--pkgflag was used to selectively install the relevant subpackages of split packages.However, this
--pkgflag was removed in pacman 5.0 with the buggy ability to build individual packages, leaving no choice but to usepacman -Uto install (split) packages correctly (#364) by passing the full path to the package file, including its full version for a robuster implementation. The version string is retrieved from the RPC interface, which itself retrieves it from the.SRCINFOfile that is normally updated at the same time each PKGBUILD updates occur by packages maintainers.Unfortunately, maintainers sometimes forget to update this .SRCINFO file, leaving the AUR interface and the RPC with obsolete information. Pacaur still relies on the retrieved RPC version string for installation. If a discrepancy is detected (expected built package not found), pacaur simply aborts and display the infamous "failed to install" message:
While some workaround are possible and even necessary for VCS packages (#428), the choice to error out with regular package is consciously done to incite users to report the issue to the maintainer in order to fix it.
In other words, I prefer to let AUR maintainers fix issues that should be fixed by them (in PKGBUILDs or outdated .SRCINFO) rather than implementing workarounds, and I am personally fine to bother and incite users to help maintain the AUR and its metadata. This seems to be, however, a controversial stance but I do consider it the lesser of two evils, considering the popularity of pacaur.
Now onto related issues and possible improvements:
makepkg -i --pkgoperation occured. It should be possible to move this version check earlier, compare the version of all packages on the build queue together and error out much earlier (ideally before any build occurs);--pkgor some variation of it back into makpekg. This was removed to prevent the ability to selectively build split packages, but the use case of selective installation does not seem to have been considered. There was a previous attempt to get it back, but it stayed unanswered.firefox-nightlyorvisual-studio-code-insiders, or libfpx currently fails to install #781 for a recent edge case). I am not sure what could be done here, apart from implementing the VCS trick (use makepkg --packagelist to retrieve updated VCS version #428) for all packages. This could potentially effectively bypass the issue for all packages, but could leave the door open to a much less reliable RPC metadata on the longer term.