
On 11/11/2010 08:21 PM, Peter Simons wrote:
Hi Peter,
Hmm, what we would need is so that when haskell-pandoc is being built it's PKGFILE is updated so that it requires haskell-http 4000.0.9 exactly. Then an attempt to uninstall haskell-hp-http later would require an uninstallation of haskell-pandoc too.
fortunately, Pacman does that already:
| # pacman -R haskell-http | checking dependencies... | error: failed to prepare transaction (could not satisfy dependencies) | :: haskell-pandoc: requires haskell-http>=4000.0.5
It's not possible to remove a package that another installed package depends on.
It's a different story, though, when a prerequisite is updated. Suppose that pandoc has been installed. Now, an update of haskell-http shows up an AUR. Pacman will perform that update, and it will break pandoc in the process. Will pacman do the update (without requiring haskell-pandoc removal) even if haskell-pandoc had specified haskell-http=4000.0.9 as dependency?
I would expect pacman to require haskell-pandoc removal in such a case but I did not test it. That is what we want. If something (Y) was built against a given version of X then Y must be there if and only if the right X is there. Would be great if pacman can ensure this for us. Well, this is needed only for haskell libraries though.
This is why we have to bump pandoc's $pkgrel at the same time we publish the update of haskell-http. In other words, an update of package X requires $pkgrel bumps of all other packages that directly or indirectly depend on X. Lets say Y depends on X. Then this pkgrel update is so that when someone installs the latest version of Y then he gets the right (the newer) version of X too. If the Y pkgrel would not be updated then the package would still want the original (old) version of X.