© 2003 - 2004 novell, inc. xbs build buddy: the ximian build system dan mills
TRANSCRIPT
© 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
© 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
© 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
© 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
© 2003 - 2004 Novell, Inc.
XBSBasic XBS Operation
conf
SourcesPatches
CVS BBRepo
Packages
bb_unpack bb_do bb_lint
© 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
© 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
© 2003 - 2004 Novell, Inc.
XBSShort break
Questions?
© 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
© 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
© 2003 - 2004 Novell, Inc.
XBSXBS Overview II
CVS
BBRepo
Sources
SourcesPatches
Master
Web xml-rpc
BuildNode
BuildNode
NFS
RCE Server
BuildNode
Build Request
© 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>
© 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>
© 2003 - 2004 Novell, Inc.
XBSThe End
Questions?