Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to install algorithm #152

Merged
merged 10 commits into from
Feb 16, 2018
Merged

Conversation

Morganamilo
Copy link
Contributor

@Morganamilo Morganamilo commented Feb 16, 2018

This pr tweaks the install algorithm quite a bit but the main focuses are:

Now when a package is stored in cache it can be reinstalled via yay -S without doing a rebuild. A rebuilt will still occur if there is a newer version of the package available.

Cleanafter is now part of install() and runs in batch at the end instead of after every passToMakepkg()

Split packages are now displayed together for nicer output. Each pkgbase is built and installed only once and in one transaction. This should be enough to get a yes for split package support on the wiki but more testing is needed before changing that.

Here is an example of the new output:

  • libc++ and libc++abi are bing installed which belong to the libc++ pkgbase
  • python-virtualfish is being installed which belongs to the virtualfish pkgbase
  • discord is being installed

printscreen-2018-02-16_15 48 48

Old output:
image

For more details see individual commits.

When installing a package might be a dependancy for something and a make
dependancy for something else. This means when prompted to remove make
dependencies yay might also try to remove a package that is actually
needed causing a pacman error.

Adding the -u option will cause pacman to skip needed packages and give
a nice warning as it does so. It does not fix the root issue but works
for now.
Install all deps for aur packages after the user confirms they want to
continue installing. This takes most of the load off of makepkg -s but
the -s is still left in for some edge cases with split packages.
Cleanafter is now run right at the very end of install instead of after
each makepkg command.
Split packages are now grouped together when printing displaying the
package base and the packages inside of the base to beinstalled. If only
one packge is to be installed from a base and the package name matches
the base name print normally

Only build and install once per package base

Only ask questions once per package base for editing pkgbuils and clean
build
Fix for packages which are makedeps to one package but runtime deps to
another showing up in MakeOnly
@Jguer Jguer merged commit 3c7118e into Jguer:master Feb 16, 2018
@Jguer
Copy link
Owner

Jguer commented Feb 16, 2018

Merged it with minimal test, we can use it as a work base

@Morganamilo
Copy link
Contributor Author

It installed everything I threw at it and the caching seems to work very well. I can't say testing was that extensive though.

@Jguer
Copy link
Owner

Jguer commented Feb 16, 2018

Ran a gendb through it without any problem.
Devel packages update.
I'm going to fix some annoyances from gometalinter, give it let's say until saturday night, and maybe do a release to stable. 2.303 isn't that stable anyway

@Morganamilo
Copy link
Contributor Author

If you wanted you could send me your exact settings and I can lint it myself before creating pr's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AUR builds fail with cleanafter enabled implement --force
2 participants