Summary: The qtdir config option from .kdesrc-buildrc was seemingly innefective, which is fixed by this patch
Reviewers: mpyne
Differential Revision: https://phabricator.kde.org/D11736
_verifyRefPresent was also broken for tag-based checkouts. Since this
already uses determinePreferredCheckoutSource, which already used
refs/tags/ for tags, this code also doubled-up on tag names.
This whole code path would be a great candidate for that test suite
under t/ if I can ever get it polished up one day :(
To avoid commit spam, I've tested this on my own Qt module directories
by deleting them and forcing them to be checked-out with tags.
Turns out the original code was doubly-broken, since
determinePreferredCheckoutSource was already adding refs/tags/ to
returned git tags.
Rather than possibly breaking other users of that function by removing
it there, instead strip off refs/tags/ during clone if present.
git-clone doesn't like this value as an option to --branch/-b. Instead
just leave it as a plain tag name and hope it doesn't conflict with any
branch names.
There is code to avoid using the TTY code that updates the status of the
build in the current line. This code prevents using the fancy TTY stuff
if progress output is not supported, but doesn't actually ever output
the end result of the build (success or failure), which wasn't the
intent.
In the other situations we don't want to clutter the line output with a
redundant status. Instead of duplicating the "progress output
supported" check later to output the status (or not), I just took out
the check for whether progress output is supported entirely, since the
progress callback can work even with build systems w/out support.
BUG:391396
FIXED-IN:18.04
Summary: Otherwise if, those variables are set startkde doesn't add them in the XDG_* variables and it results in broken system
Test Plan: tested on wayland and normal session
Reviewers: mpyne
Differential Revision: https://phabricator.kde.org/D11039
Also don't ask about the proxy, it's a rare feature, instead just
continue to add the http-proxy option if it's already set in the
environment. Users with more unusual proxy setups will have to read the
docs. :)
Tried to bring in more coverage of the features users are actually
expected to use while eliminating discussion of things that have faded
away, especially now that the migration to Git is substantially
complete.
Some of this is based on user feedback I received earlier, noting that
the Getting Started guide (even as bad as it was), was the best part of
the documentation for them but that there were important things missing.
The docs after this section still need a bunch of cleanup, I think.
The warning here complains about conditions which are already pretty
much fixed from outside of the kdesrc-build user population anyways.
It's still something notable so instead of removing completely I
downgrade it to a debugging message.
BUG:388657
FIXED-IN:18.02
The move to JSON storage of persistent opts break first-time users,
since the refactored code never actually gets around to setting a
persistent_options key in the build context object.
This seemed to work previously with Data::Dumper, but JSON::PP is not
happy with being asked to serialize an undef. On the other hand I had
always thought that sub setPersistentOption would have 'autovivified'
the needed hash table, and the reporter's build process should have
resulted in many calls to setPersistentOption over the build.
BUG:388180
FIXED-IN:18.01
My attempt to make the KDEProjectReader's check for YAML be a runtime check was
thwarted because I had separately used a "use KDEProjectReader" elsewhere,
which Perl ensures happens at compile time.
Instead make the check part of the constructor so that the package can at least
compile without throwing an error.
Perl seems to have settled on the 'parent' module instead of manually defining
variables that tell the interpreter which packages to fall back to. Some
classes now use parent, some still use the old way.
Migrate everything over to be consistent.
YAML is not an appropriate fallback from what I can glean of Perl
community discussions. YAML::XS is preferred, or YAML::Syck. If I can
get repo-metadata to conform to a stricter YAML subset then YAML::Tiny
would work too.
CCBUG:388109
This is needed to try to perform filtering of the module list based on
which git branches are available, which we could do easily when using
kde_projects.xml.
Without that data, we effectively have to wait until the module list is
already made and about to git update a module before we can tell if the
branch will be there. By that time it's too late to have filtered the
module list, so we have to determine whether this should be a hard error
or not later in execution.
To make that choice, we essentially need to know whether the module is
being built because it was specifically asked for or whether it was
brought in as part of a larger module set (and therefore can be ignored
if the git branch is missing).
This adds tracing for the config file to supplement existing tracing of
cmdline selectors.
Maintains a user-friendly improvement from a few years back to make it
easier to use module-sets to grab a wide set of modules without having
to disable individual modules that weren't present at that time.
Qt5 modules built from git rely on git information being available to
generate private headers and the like, so don't strip out the .git
directly when using builddir hack.
Likewise, using the "-r" flag to force a full recursive search for .pro
files causes qmake to error out on some modules where the .pro isn't
meant to be built as part of the module build (e.g. examples).