© 2003 - 2004 novell, inc. xbs build buddy: the ximian build system dan mills

15
© 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills <[email protected]>

Upload: berenice-armstrong

Post on 18-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBS

Build Buddy:The Ximian Build System

Dan Mills <[email protected]>

Page 2: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSPackage Management

Package management provides a way to easily install, upgrade, remove, or otherwise manage software on a system

Most popular packaging systems on Linux are RPM and Deb

PKG

Page 3: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSPackage Anatomy

Metadata is contained in a file used by packaging tools (e.g., spec file)

Metadata is often similar across packaging systems

Actual file format varies Some tools want to help you bui

ld the software as well

Delivered software

Package

Metadata

• file lists• md5sums• dependencies• description• etc

Page 4: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSXimian Build System

The Ximian Build System is a packaging solution

Multi-platform (Solaris*, Linux, HP-UX) Multi-packsys (RPM, Deb, SD) CVS Integration Integration with Red Carpet Enterprise

* Using RPM only

Page 5: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSCore XBS Functions

Source and patch management: Retrieve pristine sources and out-of-band patches from CVS or the BB repo

Package creation: Build and package a software module from a “conf” file

Package verification: Check for common packaging mistakes

bb_build engine: Performs operations on groups of modules, with dependency ordering

Page 6: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSBasic XBS Operation

conf

SourcesPatches

CVS BBRepo

Packages

bb_unpack bb_do bb_lint

Page 7: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSBasic XBS Operation

1. bb_unpack gets the sources of the module (from the repo, or from cvs), as well as all the patches. It unpacks the sources and applies the patches

2. bb_do creates the package system-specific files (e.g., "spec" file for rpm), builds, and makes the packages

3. bb_lint runs several automated checks on the packages to verify correctness and warn of possible mistakes

Page 8: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSJails

Jail images: A distribution in one file Jail unpacking

Mount points Ssh setup Rcd setup Users

Jail destruction Jail defaults: jail.conf and users.conf

Page 9: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSShort break

Questions?

Page 10: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSBuild Jobs

These are all set automatically for you by Forge: Modules, to be built and installed in order Optional push to a RC channel Environment variables RCD settings, activations, and subscriptions Can be snapshots

Page 11: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSBuild Nodes

Authentication Jobs & Jails NFS Logging Node

Job 1redhat-80-i386

Job 2suse-82-i586

Job 3debian-woody-i386

nfs mount

Page 12: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSXBS Overview II

CVS

BBRepo

Sources

SourcesPatches

Master

Web xml-rpc

BuildNode

BuildNode

NFS

RCE Server

BuildNode

Build Request

Page 13: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSExample ximian-build.conf file

<?xml version="1.0" ?><!DOCTYPE module SYSTEM "helix-build.dtd">

<module> <targetset> <filter> <i>.*</i> </filter>

<name>dummy</name>

<version>1.0</version> <rev>0</rev> <serial>1</serial>

<source><i>dummy-1.0.tar.gz-1</i></source> <psdata id="url">http://ximian.com/</psdata> <psdata id="copyright">GPL</psdata>

<build id="default"> <prepare>[[configure]]</prepare> <compile>${MAKE}</compile> <install>[[install]]</install>

<package id="default"> <name>ximian-dummy</name> <description> <h>Dummy package</h> <p>This is a dummy package. It builds quickly.</p> </description> <psdata id="group">System Environment/Kernel</psdata> </package> </build> </targetset></module>

Page 14: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSTargetset overrides

<?xml version="1.0" ?><!DOCTYPE module SYSTEM "helix-build.dtd">

<module>… <targetset> <filter> <i>suse-90-i586</i> </filter> <build id="default"> <prepare>[[configure]] --special-option=yes</prepare> <compile>${MAKE}; ${MAKE} special</compile>

<package id="default"> <name>ximian-dummy</name> </package> </build> </targetset>

<targetset> <filter> <i>redhat-7</i> <i>solaris</i> </filter> … </targetset></module>

Page 15: © 2003 - 2004 Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills

© 2003 - 2004 Novell, Inc.

XBSThe End

Questions?