shell: Demote current pages to a legacy role

External pages in an iframe are now the modern way to do things and
the old way has been labelled as 'legacy'.

Closes #1387
Reviewed-by: Stef Walter <stefw@redhat.com>
Fix BuildRequires: sed

At some point, 'sed' stopped installing to /usr/bin/sed and started
installing to /bin/sed. The easiest thing to do is to just require
the package instead of the path.

Closes #1405
Reviewed-by: Stef Walter <stefw@redhat.com>
common: Allow telling pipe not to touch stderr

This should be used in test-server, so that people debugging can
see cockpit-bridge output on the real terminal stderr.
common: Allow telling pipe not to touch stderr

This should be used in test-server, so that people debugging can
see cockpit-bridge output on the real terminal stderr.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Ignore possibly fatal warnings when installing polkit agent

This is a workaround for a polkit bug, which emits a pretty strong
g_warning() when it can't install a polkit agent. We ignore this
warning, but also ignore the possibly fatal debugging abort()
here.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
common: Include new lines in stderr output when forwarding

When forwarding stderr output to the logs, include new lines so
that the when the messages are also relayed to stderr they look
correct.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
common: Simpler removing of signal handlers in CockpitPipeTransport

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: Use 'cat' as a mock bridge in certain tests

This is simpler, faster, and makes a lot less journal and valgrind
noise.

Closes #1403
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: Allow interrupting test-server for coverage purposes

For gcc gcov coverage to work the process has to exit cleanly.
So handle SIGINT in cockpit-bridge and test-server, and exit
cleanly in that case. This allows use of tools like 'git coverage'

Closes #1404
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
bridge: Add default arg to cockpit_channel_get_bool_option()

So that we can tell the difference between unset and FALSE.
bridge: Rename the old dbus code out of the way

So we can implement new stuff with the usual 'cockpit.dbus' and
CockpitDBusJson names.
doc: Document and design new dbus-json3 protocol payload

There will be additions later, but this is the meat of the
protocol.
bridge: Implement a new dbus-json3 protocol payload

This protocol is much simpler than the others. There will be some
additions to it in the future, but at it's core it's about relaying
messages and signals.

We don't have innate object manager support in the bridge, the
javascript code will respond to events and update an object model
there.
base: Implement a javascript client for new dbus-json3

This implements a simple javascript client for dbus-json3. It has
no proxy support at this time, but that will be added later.

Fixes #1352
Fixes #1355
doc: Add documentation for cockpit.dbus and related

Closes #1356
bridge: Add explicit 'type' support for dbus-json3

You can specify the 'type' of a call, and then no Introspect() will
be needed when calling the method. In addition, the 'type' will be
returned in the reply.
bridge: Add support for flags in dbus messages

The only thing we do now is report the endianness of the message
as a flag. But in the future this is where things like the new
PERMIT_INTERACTIVE_AUTHORIZATION flag will go.

Fixes #1358
WIP DBUS property cache
WIP part 2
WIP 3
WIP 4