Welcome to the Pacman bug tracker. Please search the current bugs and feature requests before filing a new one! Use advanced search and select "Search in Comments".

* Please select the correct category and version.
* Write a descriptive summary, background info, and provide a reproducible test case whenever possible.

FS#64641 - [pacman] makepkg: Version restrictions not properly evaluated

Attached to Project: Pacman
Opened by Matthias Lisin (matthias.lisin) - Monday, 25 November 2019, 12:14 GMT
Last edited by Allan McRae (Allan) - Monday, 25 November 2019, 12:55 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


You can see the problem here:

When restricting a version of a (make) dependency and the first version requirement is evaluated with multiple matches (e.g. `nodejs<13` yields `nodejs-lts-carbon`, `nodejs-lts-dubnium` and `nodejs-lts-erbium`) makepkg suggests all three providers and defaults to the one with the lowest version, in this case `nodejs-lts-carbon` with the version 8.x.x.

==> Installing missing dependencies...
:: There are 3 providers available for nodejs<13:
:: Repository community
1) nodejs-lts-carbon 2) nodejs-lts-dubnium 3) nodejs-lts-erbium

Enter a number (default=1):

After installing one of the nodejs providers, the next version restriction is evaluated: `nodejs>=12`.
Now, if you chose either carbon (8) or dubnium (10), the build fails with the message:

==> Missing dependencies:
-> nodejs>=12
==> ERROR: Could not resolve all dependencies.

make dependencies seem to be enforced for each element in the array not accounting the other version restrictions on the same package.
Also the order seems to be sorted? `nodejs<13` is always evaluated before `nodejs>=12`.

A quick solution for my case would be to put `nodejs-lts-erbium` in makedepends since I want version 12 and nothing else.
But then this would still be a problem if the version restrictions were `nodejs>=10` and `nodejs<13`.

I couldn't find any related tasks after a quick search, please excuse me if I missed something.
Would appreciate links to existing discussions around this issue.

Additional info:
* core/pacman 5.2.1-1

Steps to reproduce:
1. Install nodejs (13)
2. Get rocketchat-desktop from AUR
3. Run makepkg -s
This task depends upon

Closed by  Allan McRae (Allan)
Monday, 25 November 2019, 12:55 GMT
Reason for closing:  Duplicate
Additional comments about closing:  FS#63086