Version: git (using Devel) OS: Linux * Downloading projects.kde.org project database... Script started processing at Thu Jan 12 12:03:54 2012 Downloading KDE Project module metadata... Updating kde-build-metadata <<< Build Process >>> Building cmake-git (1/20) Encountered an error in the execution of the script. The error reported was Can't use string ("/d/qt/4/qt-for-trunk/lib/pkgconf"...) as an ARRAY ref while "strict refs" in use at ./kdesrc-build line 336. Please submit a bug against kdesrc-build on http://bugs.kde.org/ Your logs are saved in /d/kde/src/5/log/2012-01-12-02 Reproducible: Didn't try Steps to Reproduce: Here's my kdesrc-buildrc file: http://www.davidfaure.fr/2011/kdesrc-buildrc (this is for compiling kdelibs-frameworks). The file hasn't changed recently, though, but kdesrc-build has ;-) In my shell's environment, $PKG_CONFIG_PATH is set to /d/qt/4/qt-for-trunk/lib/pkgconfig, if that matters (seems to be what the error is about). Actual Results: Perl error. Expected Results: No error :)
Saw the same. Seems commit bcf81c3aff8b7dd400f4594e264e4a97a38142a6 did the damage; adding a no strict 'refs'; in the header repaired it for me.
Looking into it now...
Git commit 2f7db9bb6ba84984118773c96440e76982fe6820 by Michael Pyne. Committed on 12/01/2012 at 23:57. Pushed by mpyne into branch 'master'. Auto-dereference list refs only if really refs. This allows single-elements lists to not be guessed as a list reference in list_has, which helps with bug 291357... but still doesn't explain why old code that used list_has didn't have the same issue. I have included a test case which fails and is likely related to the reason though, so hopefully won't be hard to pin down from here. M +6 -1 kdesrc-build M +7 -0 kdesrc-build-test.pl http://commits.kde.org/kdesrc-build/2f7db9bb6ba84984118773c96440e76982fe6820
Git commit 631eca3a64f2508a3db13860881d9cfd98a4276d by Michael Pyne. Committed on 13/01/2012 at 00:03. Pushed by mpyne into branch 'master'. Don't double-add function args to environment. Although dumber than I thought the bug would be, it at least was easy to find. The reason list_has() accepted the prior code was that it seemed to be getting called with a @curList of 0 entries instead of 1 entry (when there was no existing environment variable set). I'm still not entirely sure but I believe that was caused by the bug fixed by this commit, where the environment variable name would end up prepended to the value. If there was no value assigned it would just assign a value with 1 entry, which would have tripped the bug when used later. Please let me know if this is fixed, I've tried to add a few more testcases which all pass at this point. M +1 -1 kdesrc-build M +15 -1 kdesrc-build-test.pl http://commits.kde.org/kdesrc-build/631eca3a64f2508a3db13860881d9cfd98a4276d