running repoman scan doesn't work correctly if DEPEND looks something like this: !ppc? ( !sparc? ( !alpha? ( !ia64? ( !amd64? ( firebird? ( dev-db/firebird ) ) ) ) ) ) Several !<something>? following each other. Worked fine in portage-2.0.51_pre13 Reproducible: Always Steps to Reproduce: 1. Try running repoman scan in gnome-extra/libgda 2. 3. Actual Results: repoman b0rks Expected Results: repoman worked
Created attachment 36850 [details, diff] repoman-arch-checks-fix.patch Fixes the masklist generation code in dep_check. InCVS also.
This corrects repoman's arch checks, I would bet there is a lingering issues with use flags though.
Created attachment 36851 [details, diff] repoman-dep_check-fixes.patch Round 2, bit more conclusive (should be back to repoman's old behaviour now).
Created attachment 36852 [details, diff] repoman-use_reduce-fixes.patch Round 3. This sucker better be dead. If you're commiting, better be using this.
Created attachment 36856 [details, diff] the-I-hate-dep_check-and-use_reduce.patch sucker just won't die :) I'm splitting at this point, if this doesn't fix it, feel free to keep at it- I won't be able to work on this for the next 18 hours or so, so g'luck :)
The last one fixes it for me. Many thanx for the patch.
A better example is the current gnome-extra/libgda DEPENDS; x86? ( firebird? ( dev-db/firebird ) ) This is valid, but repoman pre17 seems to disagree. RDEPEND.bad ia64 ['>=dev-db/firebird-1.0'] Err... but I just used 'x86?'... :) The conversion to using use_reduce for nuking operators ('x86?' would be an op) in dep_check was missing a few things, specifically appropriate arch masks, and appropriate use masks. Either way, this is all InCVS, and would warrant a release when carpaski is no longer in transit (and has a system setup, etc).
Created attachment 36990 [details, diff] the-I-conquered-dep_check-and-use_reduce.patch Just a friendly jest ;) The use_reduce function was actually incapable of doing things properly. For repoman, where matchall=1, use_reduce needs to operate under the following conditions: * For useflag?, assume as True unless useflag is profile masked or is an architecture not of the profile * For !useflag?, assume as True unless useflag is an architecture not of the profile useflag? was handleable by adding all architectures not equal to the current profile to the mask list. However, there was no way to specify the architecture of the profile for processing !useflag?. This patch adds a parameter to support this, simplifies use_reduce logic for easier reading and splits out the dep_opconvert hack.
Pre18 is out w/ 'The-I-conquered-dep_check-and-use_reduce' patch :-)