Skip to content
This repository has been archived by the owner on May 31, 2018. It is now read-only.

[Feature request] Build all packages and then install them to make use of the pacman hooks #677

Closed
guiniol opened this issue Apr 6, 2017 · 4 comments

Comments

@guiniol
Copy link

guiniol commented Apr 6, 2017

When building several packages or when updating, pacaur builds one package at a time and then installs it before doing the next package. This means that the hooks lose their use as they are triggered as many times as there are packages. This is very annoying with fonts for example. It would be better if the packages were all built and then installed at once, then the hooks could be used properly. Of course, this means installing the build dependencies first.

@rmarquis
Copy link
Owner

rmarquis commented Apr 6, 2017

Of course, this means installing the build dependencies first.

There is no easy way to determine if a dependency of a package is also a required build dependency, so installing dependencies is always done before installing a package.

At first I thought that using a local repo (#643) would avoid that issue, but I'm not even sure that would help because of the above-mentioned requirement. All pacaur sees is a list of packages to build in a topologically sorted order (#408), and there is little improvement that can be done without adding much complexity.

Individual packages from a split base package are however installed at the same time.

@rmarquis rmarquis closed this as completed Apr 6, 2017
@rmarquis rmarquis added this to the 4.7.x - maintenance milestone Apr 6, 2017
@guiniol
Copy link
Author

guiniol commented Apr 6, 2017

Alright. Didn't think of that... Maybe the "solution" would be to install one level of dependency at once, but that sounds like quite the hassle for not a lot gained... Sorry for the noise.

@rmarquis
Copy link
Owner

rmarquis commented Apr 6, 2017

Maybe the "solution" would be to install one level of dependency at once

This doesn't account for the fact that quite some edge cases aren't covered by a simple "level of dependency" tree order. The dependency tree must be topologically sorted to always ensure a correct build order.

What would need to be done to allow installation by batch is to remember the whole dependency graph (not just the correct build order). This requires a lot of additional complexity - probably a whole lib in another powerful language, as I don't think this could be done solely in bash, and eventually not worth the effort/time.

A similar issue has been discussed for the Aura helper (see fosskers/aura#153), although not fixed either.

@guiniol
Copy link
Author

guiniol commented Apr 7, 2017

Clearly, a much more complex topic than I realised at first glance. It does seem tricky to implement in bash.

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

No branches or pull requests

2 participants