]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Revert "spec: Document the initial Containers1 interface"
authorSimon McVittie <smcv@collabora.com>
Thu, 11 Jan 2018 18:20:34 +0000 (18:20 +0000)
committerSimon McVittie <smcv@collabora.com>
Thu, 11 Jan 2018 18:21:40 +0000 (18:21 +0000)
This reverts commit 39262d0a2913fc8ee951beb3d0241720abf651c0.
I'm reasonably sure the API for Container1 is going to change
incompatibly, so it isn't ready to be in the published spec yet.

Signed-off-by: Simon McVittie <smcv@collabora.com>
doc/dbus-specification.xml

index 2cec36a6e1ae9713b7f5de5fd36d5f5942aabffc..860b10d70282bc4d77c5b431b372ef59370fbda9 100644 (file)
                 </entry>
               </row>
 
-              <row>
-                <entry>org.freedesktop.DBus.Containers1.Instance</entry>
-                <entry>OBJECT_PATH</entry>
-                <entry>
-                  The container instance object path of the server through
-                  which this connection is connected, as returned by
-                  <literal>AddServer</literal>. Omitted from the
-                  dictionary if this connection is not via a container's
-                  server.
-                </entry>
-              </row>
-
-              <row>
-                <entry>org.freedesktop.DBus.Containers1.Type</entry>
-                <entry>STRING</entry>
-                <entry>
-                  The container technology that created the container
-                  instance, as passed to <literal>AddServer</literal>.
-                  Omitted from the dictionary if this connection is not
-                  via a container's server. For example, a typical value
-                  for a Flatpak application would be
-                  <literal>org.flatpak</literal>.
-                </entry>
-              </row>
-
-              <row>
-                <entry>org.freedesktop.DBus.Containers1.Name</entry>
-                <entry>STRING</entry>
-                <entry>
-                  The contained app name for the container instance,
-                  as passed to <literal>AddServer</literal>. Omitted
-                  from the dictionary if this connection is not via a
-                  container's server. For example, a typical value for
-                  a Flatpak application would be
-                  <literal>org.gnome.Weather</literal>.
-                </entry>
-              </row>
-
             </tbody>
           </tgroup>
         </informaltable>
         </para>
       </sect3>
 
-      <sect3 id="bus-messages-containers1-add-server">
-        <title><literal>org.freedesktop.DBus.Containers1.AddServer</literal></title>
-        <para>
-          As a method:
-          <programlisting>
-            AddServer (in STRING container_type,
-                       in STRING container_name,
-                       in DICT&lt;STRING,VARIANT&gt; metadata,
-                       in DICT&lt;STRING,VARIANT&gt; named_arguments,
-                       out OBJECT_PATH container_instance,
-                       out ARRAY&lt;BYTE&gt; socket_path,
-                       out STRING connectable_address)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Reversed domain name identifying a container manager
-                    or container technology, such as
-                    <literal>org.flatpak</literal> or
-                    <literal>io.snapcraft</literal>. It must follow the
-                    same syntactic rules as a
-                    <link linkend="message-protocol-names-interface">D-Bus
-                      interface name</link>.
-                  </entry>
-                </row>
-                <row>
-                  <entry>1</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Some unique identifier for an application or
-                    container, whose meaning is defined by the
-                    maintainers of the container type. If the container
-                    type does not have a concept of identifying or
-                    naming its applications or containers by a string,
-                    using the empty string here is suggested.
-                  </entry>
-                </row>
-                <row>
-                  <entry>2</entry>
-                  <entry>DICT&lt;STRING,VARIANT&gt;</entry>
-                  <entry>
-                    Metadata describing the application or container, with the
-                    keys and values defined by the maintainers of the container
-                    type.
-                  </entry>
-                </row>
-                <row>
-                  <entry>3</entry>
-                  <entry>DICT&lt;STRING,VARIANT&gt;</entry>
-                  <entry>
-                    Additional arguments that extend this method.
-                    The only named arguments that are allowed are the ones
-                    listed in the
-                    <literal>org.freedesktop.DBus.Containers1.SupportedArguments</literal>
-                    property. All other named arguments are an error.
-                  </entry>
-                </row>
-                <row>
-                  <entry>4</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    An opaque object path identifying the new container
-                    instance.
-                  </entry>
-                </row>
-                <row>
-                  <entry>5</entry>
-                  <entry>ARRAY&lt;BYTE&gt;</entry>
-                  <entry>
-                    The absolute filesystem path of the resulting
-                    <literal>AF_UNIX</literal> socket, followed by a single
-                    zero (nul) byte, for example
-                    <literal>/run/user/1000/dbus-12345vwxyz\x00</literal>
-                    where \x00 represents the terminating zero byte.
-                  </entry>
-                </row>
-                <row>
-                  <entry>6</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    A connectable D-Bus address, for example
-                    <literal>unix:path=/run/user/1000/dbus-12345vwxyz</literal>.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          Set up a new server socket for use in an application container.
-          Clients can connect to that socket, and the result will be as
-          though they had connected to the message bus, with a few differences.
-          The intention is that a container manager will call this method
-          to get a new server socket, bind-mount the server socket
-          into a location that is accessible by the confined (sandboxed)
-          application, and ensure that the normal message bus socket is
-          <emphasis>not</emphasis> accessible by the confined application.
-        </para>
-
-        <para>
-          Each call to this method creates a new
-          <firstterm>container instance</firstterm>, identified by an object
-          path. Even if the specified container type and name are the
-          same as for a pre-existing container instance, each call
-          creates a new server with a new unique object path, because
-          the new container instance might represent a different
-          version of the confined application with different
-          characteristics and restrictions. The message bus may provide
-          an object at the given object path, but is not required to
-          do so.
-        </para>
-
-        <para>
-          Metadata from the first three arguments is stored by the message
-          bus, but not interpreted; software that interacts with the
-          container manager can use this metadata.
-          <!-- TODO: Clarify how the trust model works here. See
-          <https://bugs.freedesktop.org/show_bug.cgi?id=100344#c15>-->
-          The method call may fail with the error
-          <literal>org.freedesktop.DBus.Error.LimitsExceeded</literal>
-          if the caller provides more metadata than the message bus
-          is willing to store.
-        </para>
-
-        <para>
-          The last argument (the <firstterm>named arguments</firstterm>)
-          will be used in future versions of this specification to modify
-          the behaviour of this method call; all keys in this dictionary not
-          containing <literal>.</literal> are reserved by this specification
-          for this purpose. It can also contain implementation-specific
-          arguments for a particular message bus implementation, which
-          should start with a reversed domain name in the same way as
-          interface names. For example, GLib's gdbus-daemon might use
-          <literal>org.gtk.GDBus.SomeArgument</literal> if it used this
-          extension point.
-        </para>
-
-        <para>
-          In the most basic form of a call to this method, the new server
-          socket is an <literal>AF_UNIX</literal> socket at a path chosen
-          by the message bus and returned from the method. Future versions
-          of this specification are likely to provide a way for the
-          message bus implementation to receive a socket from the caller
-          and arrange for it to listen for connections, using the named
-          arguments dictionary.
-        </para>
-
-        <para>
-          Connections to the new server socket are said to be
-          <firstterm>confined</firstterm>. The message bus may prevent
-          confined connections from calling certain security-sensitive methods,
-          and may apply lower limits to these connections. However, container
-          managers and services must not rely on confined connections having
-          any particular filtering applied to them by the message bus.
-        </para>
-
-        <para>
-          In the most basic form of a call to this method, the server
-          socket will cease to listen for new connections (in the same
-          way as if <literal>StopListening</literal> had been called
-          successfully) when the caller of this method disconnects from
-          the bus. Any confined connections that are already active are
-          unaffected. Future versions of this specification are likely
-          to provide a way for the caller to alter this behaviour by
-          specifying named arguments.
-        </para>
-
-        <para>
-          The container instance object path remains valid for as
-          long as one or more confined connection via the same server
-          socket remain open, or there is a way for the server socket
-          to produce new connections in future (in other words,
-          either it is preparing to listen for new connections, or
-          it is currently listening for new connections). When the
-          container instance has ceased to listen for new connections
-          and no longer has any confined connections, the object path
-          becomes invalid, and API calls that specify it will fail with
-          the <literal>org.freedesktop.DBus.Error.NotContainer</literal>
-          error.
-        </para>
-      </sect3>
-
-      <sect3 id="bus-messages-containers1-stop-instance">
-        <title><literal>org.freedesktop.DBus.Containers1.StopInstance</literal></title>
-        <para>
-          As a method:
-          <programlisting>
-            StopInstance (in OBJECT_PATH container_instance)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    The opaque object path that was returned from the
-                    <literal>AddServer</literal> method, identifying a
-                    container instance.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          Terminate the container instance. The server will stop
-          listening for new connections, and any existing connections to
-          that server will be disconnected. When all connections have
-          been disconnected, the instance will cease to exist.
-        </para>
-        <para>
-          If the given object path does not represent a valid container
-          instance (see
-          <xref linkend="bus-messages-containers1-add-server"/>), the
-          <literal>org.freedesktop.DBus.Error.NotContainer</literal>
-          error is returned. In particular, if this method is called
-          twice, the second call will fail in this way.
-        </para>
-        <para>
-          If the given container instance exists but the caller of this
-          method is not allowed to stop it (for example because the
-          caller is in a container instance or because its user ID does
-          not match the user ID of the creator of the container
-          instance),
-          the <literal>org.freedesktop.DBus.Error.AccessDenied</literal>
-          error is returned and nothing is stopped.
-        </para>
-      </sect3>
-
-      <sect3 id="bus-messages-containers1-stop-listening">
-        <title><literal>org.freedesktop.DBus.Containers1.StopListening</literal></title>
-        <para>
-          As a method:
-          <programlisting>
-            StopListening (in OBJECT_PATH container_instance)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    The opaque object path that was returned from the
-                    <literal>AddServer</literal> method, identifying a
-                    container instance.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          Stop listening for new connections to the server in the given
-          container instance, but do not disconnect any existing
-          connections.
-        </para>
-        <para>
-          If this method is called more than once, while the container
-          instance still exists because connections to it are still
-          open, the second and subsequent calls will be successful but
-          will have no practical effect.
-        </para>
-        <para>
-          If the given object path does not represent a valid container
-          instance (see
-          <xref linkend="bus-messages-containers1-add-server"/>), the
-          <literal>org.freedesktop.DBus.Error.NotContainer</literal>
-          error is returned. In particular, this will happen if the
-          container instance already stopped listening, and all
-          connections to it (if any) were already closed.
-        </para>
-        <para>
-          If the given container instance exists but the caller of this
-          method is not allowed to stop it (for example because the
-          caller is in a container instance or because its user ID does
-          not match the user ID of the creator of the container
-          instance),
-          the <literal>org.freedesktop.DBus.Error.AccessDenied</literal>
-          error is returned and nothing is stopped.
-        </para>
-      </sect3>
-
-      <sect3 id="bus-messages-containers1-get-connection-instance">
-        <title><literal>org.freedesktop.DBus.Containers1.GetConnectionInstance</literal></title>
-        <para>
-          As a method:
-          <programlisting>
-            GetConnectionInstance (in STRING bus_name,
-                                   out OBJECT_PATH container_instance,
-                                   out STRING container_type,
-                                   out STRING container_name,
-                                   out DICT&lt;STRING,VARIANT&gt; metadata)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Unique or well-known bus name of the connection to
-                    query, such as <literal>:12.34</literal> or
-                    <literal>com.example.tea</literal>.
-                  </entry>
-                </row>
-                <row>
-                  <entry>1</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    The opaque object path that was returned from the
-                    <literal>AddServer</literal> method, identifying a
-                    container instance.
-                  </entry>
-                </row>
-                <row>
-                  <entry>2</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Reversed domain name identifying a container
-                    manager or container technology, as passed to the
-                    <literal>AddServer</literal> method, such as
-                    <literal>org.flatpak</literal> or
-                    <literal>io.snapcraft</literal>.
-                  </entry>
-                </row>
-                <row>
-                  <entry>3</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Some unique identifier for an application or container,
-                    whose meaning is defined by the maintainers of the
-                    container type.
-                  </entry>
-                </row>
-                <row>
-                  <entry>4</entry>
-                  <entry>DICT&lt;STRING,VARIANT&gt;</entry>
-                  <entry>
-                    Metadata describing the application or container, with the
-                    keys and values defined by the maintainers of the container
-                    type.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          If the given unique or well-known bus name is a connection to a
-          container server, return information about that container instance.
-          If the bus name exists but is not confined (in other words, if it
-          is a direct connection to the main message bus socket), the
-          <literal>org.freedesktop.DBus.Error.NotContainer</literal> error
-          is returned instead. If the given bus name has no owner at all, the
-          <literal>org.freedesktop.DBus.Error.NameHasNoOwner</literal> error
-          is returned instead.
-        </para>
-      </sect3>
-
-      <sect3 id="bus-messages-containers1-get-instance-info">
-        <title><literal>org.freedesktop.DBus.Containers1.GetInstanceInfo</literal></title>
-        <para>
-          As a method:
-          <programlisting>
-            GetInstanceInfo (in OBJECT_PATH container_instance,
-                             out STRING container_type,
-                             out STRING container_name,
-                             out DICT&lt;STRING,VARIANT&gt; metadata)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    The opaque object path that was returned from the
-                    <literal>AddServer</literal> method, identifying a
-                    container instance.
-                  </entry>
-                </row>
-                <row>
-                  <entry>1</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Reversed domain name identifying a container
-                    manager or container technology, as passed to the
-                    <literal>AddServer</literal> method, such as
-                    <literal>org.flatpak</literal> or
-                    <literal>io.snapcraft</literal>.
-                  </entry>
-                </row>
-                <row>
-                  <entry>2</entry>
-                  <entry>STRING</entry>
-                  <entry>
-                    Some unique identifier for an application or container,
-                    whose meaning is defined by the maintainers of the
-                    container type.
-                  </entry>
-                </row>
-                <row>
-                  <entry>3</entry>
-                  <entry>DICT&lt;STRING,VARIANT&gt;</entry>
-                  <entry>
-                    Metadata describing the application or container, with the
-                    keys and values defined by the maintainers of the container
-                    type.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          If the given object path represents a valid container instance,
-          (see <xref linkend="bus-messages-containers1-add-server"/>),
-          return information about it. Otherwise, the
-          <literal>org.freedesktop.DBus.Error.NotContainer</literal> error
-          is returned.
-        </para>
-      </sect3>
-
-      <sect3 id="bus-messages-containers1-instance-removed">
-        <title><literal>org.freedesktop.DBus.Containers1.InstanceRemoved</literal></title>
-        <para>
-          As a signal emitted by the message bus:
-          <programlisting>
-            InstanceRemoved (OBJECT_PATH container_instance)
-          </programlisting>
-          Message arguments:
-          <informaltable>
-            <tgroup cols="3">
-              <thead>
-                <row>
-                  <entry>Argument</entry>
-                  <entry>Type</entry>
-                  <entry>Description</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>0</entry>
-                  <entry>OBJECT_PATH</entry>
-                  <entry>
-                    The opaque object path that was returned from the
-                    <literal>AddServer</literal> method, identifying a
-                    container instance.
-                  </entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
-
-        <para>
-          Emitted when a container instance ceases to exist. A container
-          instance continues to exist as long as it is listening for
-          new connections, or as long as connections to the instance
-          are open, whichever is longer.
-        </para>
-      </sect3>
-
       <sect3 id="bus-messages-become-monitor">
         <title><literal>org.freedesktop.DBus.Monitoring.BecomeMonitor</literal></title>
         <para>