ThirdPartyApt

Differences between revisions 1 and 2
Revision 1 as of 2005-07-09 03:03:48
Size: 947
Editor: c-67-174-81-195
Comment:
Revision 2 as of 2005-10-23 19:20:55
Size: 2768
Editor: c-24-0-58-245
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Third parties should be able to distribute programs for installation on Ubuntu or other Apt based distros (especially Ubuntu). They should be provided tools to make installation, integration and maintenence of their programs easy. We have existing infrastructure to provide to them, but need to do so in a consistant way while providing an easy to use interface. Third parties should be able to distribute programs for installation on Ubuntu or other Apt based distros (especially Ubuntu). They should be provided tools to make installation, integration and maintanence of their programs easy. We have existing infrastructure to provide to them, but need to do so in a consistant way while providing an easy to use interface.
Line 5: Line 5:
Basically what is needed is some way to intro We are missing a link between the act of clicking on a link on the web and the package itself being installed. Here I seek to provide one possible way.
Line 8: Line 8:
... to be continued ... == Introducing the .apt file format ==

A file format should be created that encapsulates a number of pieces of information neccassary for installing a remote application or set of applications. This file format is called a ".apt" file.

The APT file is formatted with standard DPKG stanzas. Each stanza contains a GPG key, repository URL and filters describing what type of platform this URL is suitable for. Consider the example stanza:

{{{
Architecture: i386
Distribution: Ubuntu
Suite: breezy
Release: 5.10
Archive:
 http://us.archive.ubuntu.com/ubuntu breezy universe
PublicKey:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.0 (GNU/Linux)
 .
 mQGiBEFEnz8RBAC7LstGsKD7McXZgd58oN68KquARLBl6rjA2vdhwl77KkPPOr3O
 <blah>
 =C9XB
 -----END PGP PUBLIC KEY BLOCK-----
Install: figlet
}}}

The first 4 tags, Architecture, Distribution, Suite and Release specify the distribution that this stanza applies to. Any can be omited. Only the filters that are present are applied. If you want the stanza applied to all Archs, remove Architecture.

Archive lists the APT archives to add to the sources.list file.

PublicKey contains a GPG public key to trust for package installation.

Install specifies which package or packages to install from the archive.

== Method and Madness ==

A program is provided to handle the .apt file type. When this program launches a .apt file, it parses all the stanzas and determines which applies to the current environment. It then walks the user through a few simple questions asking if they are sure they want to trust the PublicKey to install software onto their system. After the user has confirmed all the steps, the packages specified by Install are installed.

Third parties should be able to distribute programs for installation on Ubuntu or other Apt based distros (especially Ubuntu). They should be provided tools to make installation, integration and maintanence of their programs easy. We have existing infrastructure to provide to them, but need to do so in a consistant way while providing an easy to use interface.

The main use case is simple. A user should be able to be provided a link to click on by a third party ISV which will start the installation of that ISVs software. The user should click on such a link, be provided an explanation of what they are about to install. The installed software should track updates from the ISV automatically and integrate into the existing infrastructure. We already provide Apt for this. An ISV can provide an Apt repository URL for the user which accomplishes most of this.

We are missing a link between the act of clicking on a link on the web and the package itself being installed. Here I seek to provide one possible way.

Introducing the .apt file format

A file format should be created that encapsulates a number of pieces of information neccassary for installing a remote application or set of applications. This file format is called a ".apt" file.

The APT file is formatted with standard DPKG stanzas. Each stanza contains a GPG key, repository URL and filters describing what type of platform this URL is suitable for. Consider the example stanza:

Architecture: i386
Distribution: Ubuntu
Suite: breezy
Release: 5.10
Archive:
 http://us.archive.ubuntu.com/ubuntu breezy universe
PublicKey:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.0 (GNU/Linux)
 .
 mQGiBEFEnz8RBAC7LstGsKD7McXZgd58oN68KquARLBl6rjA2vdhwl77KkPPOr3O
 <blah>
 =C9XB
 -----END PGP PUBLIC KEY BLOCK-----
Install: figlet

The first 4 tags, Architecture, Distribution, Suite and Release specify the distribution that this stanza applies to. Any can be omited. Only the filters that are present are applied. If you want the stanza applied to all Archs, remove Architecture.

Archive lists the APT archives to add to the sources.list file.

PublicKey contains a GPG public key to trust for package installation.

Install specifies which package or packages to install from the archive.

Method and Madness

A program is provided to handle the .apt file type. When this program launches a .apt file, it parses all the stanzas and determines which applies to the current environment. It then walks the user through a few simple questions asking if they are sure they want to trust the PublicKey to install software onto their system. After the user has confirmed all the steps, the packages specified by Install are installed.

ThirdPartyApt (last edited 2009-02-05 23:50:29 by 207)