Mailinglist Archive: opensuse-buildservice (199 mails)

< Previous Next >
[opensuse-buildservice] Re: Introducing 0install developers
  • From: Thomas Leonard <talex5@xxxxxxxxx>
  • Date: Sun, 26 Jun 2011 14:14:02 +0100
  • Message-id: <>
On 16 June 2011 15:31, Adrian Schröter <adrian@xxxxxxx> wrote:
Am Wednesday, 15. June 2011, 12:36:00 schrieb Jos Poortvliet:
There is no fundamental difference in making an RPM package from
a specfile, compared with making a XML+TBZ package with 0compile.

In the .rpm, you have the metadata, signature and archive combined
into one file while in ZI you have them separated into two files.

So, you prefer to compile and to build from scratch instead of building
an rpm and converting it ?

No problem in general, but how would the base system be installed. I think
there is not anything like a complete linux just build via 0install packages,
right ?

So we would need to support some rpm/deb base system, adding more packages as
build dependencies (rpm or 0 ?) and build the 0install package on top.

Hi Adrian,

That's correct - there has to be some existing base system.

Sounds a bit of a mixture like an rpm build and a kiwi build to me.

Anders, Thomas, here is the documentation on adding a build target:

this is end-user information, not really OBS developer informations.

If you want to support the 0install xml files, you need to add support
to the build script and it's parsing modules first. When this is done, one
should be done to 90%

The build script can work complete standalone, no need to setup an OBS
to work on it.

Thanks for the link. It's easy enough to modify that script, provided
that the VM/chroot has network access. It looks like the current
sequence in the script is:

1. Process the .spec file on the host to get the build dependencies
2. Install build dependencies and other support RPMs into the chroot
3. Run build as abuild user within the chroot
4. Collect built objects (RPMs, etc)

I think the ideal sequence for 0install would be:

1. Install support RPMs (zeroinstall-injector) into the chroot.
2. Run "0compile setup" in chroot as abuild user (with network access)
3. Run "0compile build" in chroot as abuild user (no network access needed)
4. Collect built objects (XML metadata file and tar.bz2 archive)

Step 2 would download all build dependencies (RPMs and 0install
packages). Presumably these should be cached somehow so that they
outlive the chroot?

That's easy enough for the 0install packages; either they can be
downloaded inside the chroot and copied to the host ("0store copy"),
or downloaded on the host. The host cache should be shared directly
(e.g. using a bind mount, which could be read-only if necessary).

However, the package selection really needs to happen inside the
chroot because which dependencies it selects (and which metadata files
it downloads) depends on the environment it's running in (OS, CPU,
installed RPMs).

Does that sound reasonable?


Dr Thomas Leonard
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >