© Novell, Inc. XBS Build Buddy: The Ximian Build System Dan Mills
© Novell, Inc. XBS Package 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
© Novell, Inc. XBS Package 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 build the software as well Delivered software Package Metadata file lists md5sums dependencies description etc
© Novell, Inc. XBS Ximian 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
© Novell, Inc. XBS Core 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
© Novell, Inc. XBS Basic XBS Operation conf Sources Patches CVS BB Repo Packages bb_unpack bb_do bb_lint
© Novell, Inc. XBS Basic 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
© Novell, Inc. XBS Jails 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
© Novell, Inc. XBS Short break Questions?
© Novell, Inc. XBS Build 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
© Novell, Inc. XBS Build Nodes Authentication Jobs & Jails NFS Logging Node Job 1 redhat-80-i386 Job 2 suse-82-i586 Job 3 debian-woody-i386 nfs mount
© Novell, Inc. XBS XBS Overview II CVS BB Repo Sources Patches Master Webxml-rpc Build Node Build Node NFS RCE Server Build Node Build Request
© Novell, Inc. XBS Example ximian-build.conf file.* dummy dummy-1.0.tar.gz-1 GPL [[configure]] ${MAKE} [[install]] ximian-dummy Dummy package This is a dummy package. It builds quickly. System Environment/Kernel
© Novell, Inc. XBS Targetset overrides … suse-90-i586 [[configure]] --special-option=yes ${MAKE}; ${MAKE} special ximian-dummy redhat-7 solaris …
© Novell, Inc. XBS The End Questions?