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

Details

Description:
You can see the problem here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=rocketchat-desktop


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

Loading...