[oi-dev] Proposal for a package manifest "build" namespace

Michael Keller michael.keller at minesworld.de
Mon May 16 00:02:06 UTC 2011


Hi to all. Hope you like it. Feel free to make your suggestions / comments.

Thanks!



Proposal for an IPS package manifest "build" namespace
2011-05-16, Michael Keller

It was a great achievement in OpenSolaris to have a systemwide single software distribution and installation mechanism named IPS.

Building on that OpenSolaris successors like Solaris 11 Express, OpenIndiana etc. have already attracted different communities to use IPS as a target for their own building systems.

Seen from a bird-eye view those package distributions are packaged "use cases": there are often to many options how to configure the build of a piece of code so that the package builders had to decide on the options they found most useful. For an example is the usage and linking against ldap libraries or the lack thereof.

Often this will lead to the need to build packages by the "end users" itself. And this is a time consuming and often confusing task - which lead to those various package distributions.

The effort described here is to let the package distributors do what they can do best: defining their build system, optimizing it, distributing the resulting packages and - in the best case - growing their community of package maintainers.

To combine the efforts of the existing package distributors and helping at the same time people coming up to speed modifying existing packages we need a base of informations currently lacking within a package's manifest.



The namespace taken for the new identifiers is proposed to be "build" and the new informations are:

build.yourself : a resource describing the configuration options which can be in the form defined by the build system


This alone would save hours of many people searching for it. But lets go on:


build.buildpkg :  an IPS URL of the packaged build system itself

build.setup : an URL referencing a page how to setup the IPS packaged build system which includes all steps from installing it via build.buildpkg or any other way up to packaging the build

build.this : an URL referencing the source as it was used by the build system (if different from build.yourself )


Providing those informations to the packages is little to do for existing package distributors and the gains from it are huge for the users. But let's give back to the package distributors:

build.welcome : an URL referencing a welcome page of the package distributors targeted to package builders

build.notes : an URL referencing notes specific to the package which are maintained by package distributors

build.wiki : an URL referencing a community/users wiki specific to the package


If not anything else these "community" informations will help interested people find the right places.


The intention of choosing the identifier names was/should be:
- the terms should be generic and not "prefer" any existing build system
- the terms should be human and "speak" to users directly



Changes needed to make the new "build" namespace available:


on the OpenIndiana / Solaris 11 express etc. source side:

- changes to the pkg source to recognize the new namespace and it's identifiers within manifests

- changes to the Package Manager application to include a new tab pane showing the build informations. Clicking onto an URL value should open that URL


on the package distributor's side:

- rebuild the existing packages with updated package manifest 



Proposed changes to make it "take off" on the OpenIndiana community side:

- make it possibly to let the package distributors IPS repositories be included within the OpenIndiana LiveCDs

- but they won't be included until all their packages include all or a subset of the build namespace's identifiers

- which should be automatically and periodically checked by a tool which requests the manifests from the repositories

- a system to let package distributors register their /opt subdirectory name 



As it helps users to build their own packages it will also be helpful to have the build namespace informations at some time in the future for all OpenIndiana consolidations.







More information about the oi-dev mailing list