Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
creating a custom bootable cd with catalyst-2.0
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
hakbeest
n00b
n00b


Joined: 26 Aug 2004
Posts: 27

PostPosted: Sun Aug 27, 2006 10:27 pm    Post subject: creating a custom bootable cd with catalyst-2.0 Reply with quote

I just want to document my recent experiences with catalyst-2.0 in creating a custom bootable cd. There is a wiki entry about doing this, but it is sketchy at best, although it seems to have been edited recently, so it may have improved. At the time of this writing catalyst-2.0 is still masked pending announcement in the Gentoo weekly newsletter, according to the maskfile.

Code:
cat /usr/portage/profiles/package.mask|grep -B 1 catalyst
# Chris Gianelloni <wolf31o2@gentoo.org> (29 Jul 2006)
# Masking this version until I can get it announced on gentoo-catalyst and also
# in the GWN.
=dev-util/catalyst-2.0


I had some problems with catalyst-2.0_rc50 so make sure you have at least catalyst-2.0. Catalyst-2.0 needs to be root for everything it does and will complain even if you just ask it for some help.

Code:
$ catalyst --help
Gentoo Catalyst, version 2.0
Copyright 2003-2005 The Gentoo Foundation
Distributed under the GNU General Public License version 2

!!! catalyst: This script requires root privileges to operate


The first thing that we need is a stage3 which can be used to build your own stages with. Download it from a gentoo mirror. In my case I wanted to build a cd, that only needed to boot on my pentium4 laptop, on my amd64 box, so I downloaded an i686 stage3. Now move it to the right place:

Code:
# mkdir /var/tmp/catalyst/builds
# mv stage3-i686-2006.0.tar.bz2 /var/tmp/catalyst/builds


The second thing we need is a portage snapshot. You can either download one from a Gentoo mirror or let catalyst build one from your current portage tree. You should substitute 20060826 with whatever you want to recognize your snapshot by.

Code:
# catalyst -s 20060826


This will produce a snapshot called /var/tmp/catalyst/snapshots/portage-20060826.tar.bz2 (and an md5-digest too). Now we need a so-called spec-file for our stage1. I did everything in directory /root/catalyst/test/ and the spec-files will reflect that. Here is my /root/catalyst/test/stage1.spec which I adapted from /usr/share/doc/catalyst-2.0/examples/generic_stage_template.spec, hence all the nice comments:

Code:
# stage1 specfile
# used to build a stage1 installation tarball

# The subarch can be any of the supported catalyst subarches (like athlon-xp).
# Refer to the catalyst reference manual for suppurted subarches.
# http://www.gentoo.org/proj/en/releng/catalyst/reference.xml
# example:
# subarch: athlon-xp
subarch:i686

# The version stamp is an identifier for the build.  It can be anything you wish
# it to be, but it is usually a date.
# example:
# version_stamp: 2005.0
version_stamp: 20060826

# The target specifies what target we want catalyst to do. For stages, the
# supported targets are: stage1 stage2 stage3
# example:
# target: stage2
target: stage1

# The rel_type defines what kind of build we are doing.  This is merely another
# identifier, but it useful for allowing multiple concurrent builds.  Usually,
# default will suffice.
# example:
# rel_type: default
rel_type: default

# This is the system profile to be used by catalyst to build this target.  It is
# specified as a relative path from /usr/portage/profiles.
# example:
# profile: default-linux/x86/2005.0
profile: default-linux/x86/2006.1

# This specifies which snapshot to use for building this target.
# example:
# snapshot: 20050324
snapshot: 20060826

# This specifies where the seed stage comes from for this target,  The path is
# relative to $clst_sharedir/builds.  The rel_type is also used as a path prefix
# for the seed.
# example:
# default/stage3-x86-2004.3
source_subpath:stage3-i686-2006.0

# These are the hosts used as distcc slaves when distcc is enabled in your
# catalyst.conf.  It follows the same syntax as distcc-config --set-hosts and
# is entirely optional.
# example:
# distcc_hosts: 127.0.0.1 192.168.0.1
distcc_hosts:

# This is an optional directory containing portage configuration files.  It
# follows the same syntax as /etc/portage and should be consistent across all
# targets to minimize problems.
# example:
# portage_confdir: /etc/portage
portage_confdir:

# This option specifies the location to a portage overlay that you would like to
# have used when building this target.
# example:
# portage_overlay: /usr/local/portage
portage_overlay:

# This allows the optional directory containing the output packages for
# catalyst.  Mainly used as a way for different spec files to access the same
# cache directory.  Default behavior is for this location to be autogenerated
# by catalyst based on the spec file.
# example:
# pkgcache_path: /tmp/packages
pkgcache_path:

# These options are only available when building a stage1 or stage2 target and
# are all optional.  These allow for emulating the changes possible during ai
# bootstrap.  Some possible uses of these would be building embedded stages
# requiring a different CHOST or building a stage2 with NPTL support from a
# stage1 tarball that is built without it.
# If left blank, then the catalyst defaults from arch.py are used.

# This option is used to change the CHOST from what is default in the profile
# to whatever you specify.  This is useful for building NPTL, for example.
# example:
# chost: i686-pc-linux-gnu
chost: i686-pc-linux-gnu

# This option allows you to change the default CFLAGS that will be used in
# building this stage.  This really should remain generic, as putting
# optimizations flags here will build a stage1 tarball that is no longer
# generic.
# example:
# cflags: -Os -pipe -fomit-frame-pointer -mcpu=i686
cflags: -Os -pipe -march=pentium4

# This is for setting the CXXFLAGS.  Generally, this would be set to the same
# as CFLAGS.  In fact, it will mirror CFLAGS by default.
# example:
# cxxflags: -Os -pipe -fomit-frame-pointer -mcpu=i686
cxxflags:

# Setting this option sets LDFLAGS in make.conf in your stage.  This would be
# useful for setting up an embedded or hardened system.
# example:
# ldflags: -Wl,-O1 -Wl,-z,now
ldflags:


One thing to notice is that I used the 2006.1 profile, which caused a lot of warnings during the rest of the process, although no ill effects were experienced because of it.

Code:
 * Warning, the Surgeon General has determined that using profiles before
 * they have been released can cause a multitude of medical problems,
 * including, but not limited to:

 * Nausea, diarrhea, intestinal blockage, mental defects, anal leakage,
 * erectile disfunction, blindness, and death

 * Use of this profile should be undertaken solely at your own risk!


Now you are ready to build your very own stage1.

Code:
# catalyst -f stage1.spec


The spec-files for stage2 and stage3 are basically exactly the same as the stage1 spec-file, except of course that the target needs to specify the relevant stage and the source_subpath should point to the relevant previous stage. There is probably a simple way to reuse one file for all three stages, but at the time I was only worrying about getting it to work. The stage2.spec with all the comments stripped out:

Code:
subarch:i686
version_stamp: 20060826
target: stage2
rel_type: default
profile: default-linux/x86/2006.1
snapshot: 20060826
source_subpath:default/stage1-i686-20060826
chost: i686-pc-linux-gnu
cflags: -Os -pipe -march=pentium4


Build your stage2 with

Code:
# catalyst -f stage2.spec


My stage3.spec:

Code:
subarch:i686
version_stamp: 20060826
target: stage3
rel_type: default
profile: default-linux/x86/2006.1
snapshot: 20060826
source_subpath:default/stage2-i686-20060826
chost: i686-pc-linux-gnu
cflags: -Os -pipe -march=pentium4


Build your stage3 with

Code:
# catalyst -f stage3.spec


You now have your own stage3. One of the things you can do with this is build a bootable cd from it.

As you will see this time I specified "portage_confdir: /root/catalyst/test/portageconf". This means that that directory is used (like /etc/portage/ ) for holding configuration files for portage. In my case I wanted to use vanilla kernel 2.6.17.11 and gentoo kernel 2.6.17-r6 which were masked by ~x86 keyword, so I made a file /root/catalyst/test/portageconf/package.keywords containing:

Code:
sys-kernel/gentoo-sources
sys-kernel/vanilla-sources


Unfortunately catalyst refused to recognize my explicit keywording of gentoo-sources, so you will see some entries for it commented out in the following spec-files. Here's my livecd-stage1.spec

Code:
# livecd-stage1 specfile
# used to build a livecd-stage1

# The subarch can be any of the supported catalyst subarches (like athlon-xp).
# Refer to the catalyst reference manual for suppurted subarches.
# http://www.gentoo.org/proj/en/releng/catalyst/reference.xml
# example:
# subarch: athlon-xp
subarch: pentium4

# The version stamp is an identifier for the build.  It can be anything you wish# it to be, but it is usually a date.
# example:
# version_stamp: 2005.0
version_stamp: 20060826

# The target specifies what target we want catalyst to do.  For building a CD,
# we start with livecd-stage1 as our target.
# example:
# target: livecd-stage1
target: livecd-stage1

# The rel_type defines what kind of build we are doing.  This is merely another
# identifier, but it useful for allowing multiple concurrent builds.  Usually,
# default will suffice.
# example:
# rel_type: default
rel_type: default

# This is the system profile to be used by catalyst to build this target.  It is# specified as a relative path from /usr/portage/profiles.
# example:
# profile: default-linux/x86/2005.0
profile: default-linux/x86/2006.1

# This specifies which snapshot to use for building this target.
# example:
# snapshot: 20050324
snapshot: 20060826

# This specifies where the seed stage comes from for this target,  The path is
# relative to $clst_sharedir/builds.  The rel_type is also used as a path prefix# for the seed.
# example:
# default/stage3-x86-2004.3
source_subpath:default/stage3-i686-2006.08.22

# These are the hosts used as distcc slaves when distcc is enabled in your
# catalyst.conf.  It follows the same syntax as distcc-config --set-hosts and
# is entirely optional.
# example:
# distcc_hosts: 127.0.0.1 192.168.0.1
distcc_hosts:

# This is an optional directory containing portage configuration files.  It
# follows the same syntax as /etc/portage and should be consistent across all
# targets to minimize problems.
# example:
# portage_confdir: /etc/portage
portage_confdir: /root/catalyst/test/portageconf

# This option specifies the location to a portage overlay that you would like to
# have used when building this target.
# example:
# portage_overlay: /usr/local/portage
portage_overlay:

# This allows the optional directory containing the output packages for
# catalyst.  Mainly used as a way for different spec files to access the same
# cache directory.  Default behavior is for this location to be autogenerated
# by catalyst based on the spec file.
# example:
# pkgcache_path: /tmp/packages
pkgcache_path:

# The livecd-stage1 target is where you will build packages for your CD.  These
# packages can be built with customized USE settings.  The settings here are
# additive to the default USE configured by the profile.  For building release
# media, the first thing we do is disable all default USE flags with -* and then
# begin to set our own.
# example:
# livecd/use: -* ipv6 socks5 livecd fbcon ncurses readline ssl
livecd/use:

# This is the set of packages that we will merge into the CD's filesystem.  They
# will be built with the USE flags configured above.  These packages must not
# depend on a configured kernel.  If the package requires a configured kernel,
# then it will be defined elsewhere.
# example:
# livecd/packages: livecd-tools dhcpcd acpid apmd gentoo-sources coldplug fxload irssi gpm syslog-ng parted links raidtools dosfstools nfs-utils jfsutils xfsprogs e2fsprogs reiserfsprogs ntfsprogs pwgen rp-pppoe screen mirrorselect penggy iputils hwdata-knoppix hwsetup lvm2 evms vim pptpclient mdadm ethtool wireless-tools prism54-firmware wpa_supplicant
livecd/packages: =vanilla-sources-2.6.17.11 dhcpcd
# =gentoo-sources-2.6.17-r6


Build your livecd-stage1 with:

Code:
catalyst -f livecd-stage1.spec


My livecd-stage2.spec:
Code:
# livecd-stage2 specfile
# used to build a livecd-stage2 iso image

# The subarch can be any of the supported catalyst subarches (like athlon-xp).
# Refer to the catalyst reference manual for suppurted subarches.
# http://www.gentoo.org/proj/en/releng/catalyst/reference.xml
# example:
# subarch: athlon-xp
subarch: pentium4

# The version stamp is an identifier for the build.  It can be anything you wish# it to be, but it is usually a date.
# example:
# version_stamp: 2005.0
version_stamp: 20060826

# The target specifies what target we want catalyst to do.  For building a CD,
# we continue with livecd-stage2 as the target.
# example:
# target: livecd-stage2
target: livecd-stage2

# The rel_type defines what kind of build we are doing.  This is merely another
# identifier, but it useful for allowing multiple concurrent builds.  Usually,
# default will suffice.
# example:
# rel_type: default
rel_type: default

# This is the system profile to be used by catalyst to build this target.  It is# specified as a relative path from /usr/por
tage/profiles.
# example:
# profile: default-linux/x86/2005.0
profile: default-linux/x86/2006.1

# This specifies which snapshot to use for building this target.
# example:
# snapshot: 20050324
snapshot: 20060826

# This specifies where the seed stage comes from for this target,  The path is
# relative to $clst_sharedir/builds.  The rel_type is also used as a path prefix# for the seed.
# example:
# default/livecd-stage1-x86-2004.3
source_subpath: default/livecd-stage1-pentium4-20060826

# These are the hosts used as distcc slaves when distcc is enabled in your
# catalyst.conf.  It follows the same syntax as distcc-config --set-hosts and
# is entirely optional.
# example:
# distcc_hosts: 127.0.0.1 192.168.0.1
distcc_hosts:

# This is an optional directory containing portage configuration files.  It
# follows the same syntax as /etc/portage and should be consistent across all
# targets to minimize problems.
# example:
# portage_confdir: /etc/portage
portage_confdir: /root/catalyst/test/portageconf

# This option specifies the location to a portage overlay that you would like to
# have used when building this target.
# example:
# portage_overlay: /usr/local/portage
portage_overlay:

# This allows the optional directory containing the output packages for
# catalyst.  Mainly used as a way for different spec files to access the same
# cache directory.  Default behavior is for this location to be autogenerated
# by catalyst based on the spec file.
# example:
# pkgcache_path: /tmp/packages
pkgcache_path:

# This allows the optional directory containing the output packages for kernel
# builds.  Mainly used as a way for different spec files to access the same
# cache directory.  Default behavior is for this location to be autogenerated
# by catalyst based on the spec file.
# example:
# kerncache_path: /tmp/kernel
kerncache_path:

# The fstype is used to determine what sort of CD we should build.  This is
# used to set the type of loopback filesystem that we will use on our CD.
# Possible options are as follows:
# squashfs - This gives the best compression, but requires a kernel patch.
# zisofs - This uses in-kernel compression and is supported on all platforms.
# normal - This creates a loop without compression.
# noloop - This copies the files to the CD directly, withuot using a loopback.
# example:
# livecd/fstype: squashfs
livecd/fstype: zisofs

# The cdtar is essentially the bootloader for the CD.  It also holds the main
# configuration for the bootloader.  On x86/amd64, it also can include a small
# memory testing application, called memtest86+.
# example:
# livecd/cdtar: /usr/lib/catalyst/livecd/cdtar/isolinux-2.13-memtest86+-cdtar.tar.bz2
livecd/cdtar: /usr/lib/catalyst/livecd/cdtar/isolinux-3.09-cdtar.tar.bz2

# This is the full path and filename to the ISO image that the livecd-stage2
# target will create.
# example:
# livecd/iso: /tmp/installcd-x86-minimal.iso
livecd/iso: /root/catalyst/test/marijn_pentium4_kernelbootcd.iso

# A fsscript is simply a shell script that is copied into the chroot of the CD
# after the kernel(s) and any external modules have been compiled and is
# executed within the chroot.  It can contain any commands that are available
# via the packages installed by our stages or by the packages installed during
# the livecd-stage1 build.  We do not use one for the official release media, so
# there will not be one listed below.  The syntax is simply the full path and
# filename to the shell script that you wish to execute.  The script is copied
# into the chroot by catalyst automatically.
# example:
# livecd/fsscript:
livecd/fsscript:

# The splash type determines the automatic arguments for the bootloader on
# supported architectures.  The possible options are gensplash and bootsplash.
# example:
# livecd/splash_type: gensplash
livecd/splash_type:

# This is where you set the splash theme.  This theme must be present in either
# /etc/splash or /etc/bootsplash, depending on your livecd/splash_type, before
# the kernel has completed building during the livecd-stage2 target.
# example:
# livecd/splash_theme: livecd-2005.0
livecd/splash_theme:

# This is a set of arguments that get passed to the bootloader for your CD.  It
# is used on the x86/amd64 release media to enable keymap selection.
# example:
# livecd/bootargs: dokeymap
livecd/bootargs:

# This is a set of arguments that will be passed to genkernel for all kernels
# defined in this target.  It is useful for passing arguments to genkernel that
# are not otherwise available via the livecd-stage2 spec file.
# example:
# livecd/gk_mainargs: --lvm2 --dmraid
livecd/gk_mainargs:

# This option allows you to specify your own linuxrc script for genkernel to use
# when building your CD.  This is not checked for functionality, so it is up to
# you to debug your own script.  We do not use one for the official release
# media, so there will not be one listed below.
# example:
# livecd/linuxrc:
livecd/linuxrc:

# This option controls quite a bit of catalyst internals and sets up several
# defaults.  Each type behaves slightly differently and is explained below.
# gentoo-release-minimal - This creates an official minimal InstallCD.
# gentoo-release-universal - This creates an official universal InstallCD.
# gentoo-release-livecd - This creates an official LiveCD environment.
# gentoo-gamecd - This creates an official Gentoo GameCD.
# generic-livecd - This should be used for all non-official media.
# example:
# livecd/type: gentoo-release-minimal
livecd/type: generic-livecd

# This is for the README.txt on the root of the CD.  For Gentoo releases, we
# use a default README.txt, and this will be used on your CD if you do not
# provide one yourself.  Since we do not use this for the official releases, it
# is left blank below.
# example:
# livecd/readme:
livecd/readme:

# This is for the CD's message of the day.  It is not required for official
# release media, as catalyst builds a default motd when the livecd/type is set
# to one of the gentoo-* options.  This setting overrides the default motd even
# on official media.  Since we do not use this for the official releases, it is
# left blank below.
# example:
# livecd/motd:
livecd/motd:

# This is for blacklisting modules from being hotplugged that are known to cause
# problems.  Putting a module name here will keep it from being auto-loaded,
# even if ti is detected by hotplug.
# example:
# livecd/modblacklist: 8139cp
livecd/modblacklist:

# This is for adding init scripts to runlevels.  The syntax for the init script
# is the script name, followed by a pipe, followed by the runlevel in which you
# want the script to run.  It looks like spind|default and is space delimited.
# We do not use this on the official media, as catalyst sets up the runlevels
# correctly for us.  Since we do not use this, it is left blank below.
# This option will automatically create missing runlevels
# example:
# livecd/rcadd:
livecd/rcadd:

# This is for removing init script from runlevels.  It is executed after the
# defaults shipped with catalyst, so it is possible to remove the defaults using
# this option.  It can follow the same syntax as livcd/rcadd, or you can leave
# the runlevel off to remove the script from any runlevels detected.  We do not
# use this on the official media, so it is left blank.
# example:
# livecd/rcdel:
livecd/rcdel:

# This overlay is dropped onto the CD filesystem and is outside any loop which
# has been configured.  This is typically used for adding the documentation,
# distfiles, snapshots, and stages to the official media.  These files will not
# be available if docache is enabled, as they are outside the loop.
# example:
# livecd/overlay: /tmp/overlay-minimal
livecd/overlay:

# This overlay is dropped onto the filesystem within the loop.  This can be used
# for such things as updating configuration files or adding anything else you
# would want within your CD filesystem.  Files added here are available when
# docache is used.  We do not use this on the official media, so we will leave
# it blank below.
# example:
# livecd/root_overlay:
livecd/root_overlay:

# This is here to enable udev support in both catalyst and genkernel.  This
# option requires genkernel >= 3.1.0, and is not needed with genkernel >=3.2.0,
# as udev is the default.
# example:
# livecd/devmanager: udev
livecd/devmanager:

# This is used by catalyst to copy the specified file to /etc/X11/xinit/xinitrc
# and is used by the livecd/type gentoo-gamecd and generic-livecd.  While the
# file will still be copied for any livecd/type, catalyst will only create the
# necessary /etc/startx for those types, so X will not be automatically started.
# This is useful also for setting up X on a CD where you do not wish X to start
# automatically.  We do not use this on the release media, so it is left blank.
# example:
# livecd/xinitrc:
livecd/xinitrc:

# This is used by catalyst to determine which display manager you wish to
# become the default.  This is used on the official Gentoo LiveCD and is valid
# for any livecd/type.
# example:
# livecd/xdm: gdm
livecd/xdm:

# This is used by catalyst to determine which X session should be started by
# default by the display manager.  This is used on the official Gentoo LiveCD
# and is valid for any livecd/type.
# example:
# livecd/xsession: gnome
livecd/xsession:

# This option is used to create non-root users on your CD.  It takes a space
# separated list of user names.  These users will be added to the following
# groups: users,wheel,audio,games,cdrom,usb
# If this is specified in your spec file, then the first user is also the user
# used to start X. Since this is not used on the release media, it is blank.
# example:
# livecd/users:
livecd/users:

# This option sets the volume ID of the CD created.
# example:
# livecd/volid: Gentoo Linux 2005.0 X86
livecd/volid: Marijn pentium4 kernel test cd

# This option is only used when creating a GameCD.  This specifies the file that
# contains the definitions for GAME_NAME and GAME_EXECUTABLE, which are used by
# the GameCD scripts to set some specific options for the game.  This is not
# used on the release media, and is therefore blank.
# example:
# gamecd/conf:
gamecd/conf:

# This option is used to specify the number of kernels to build and also the
# labels that will be used by the CD bootloader to refer to each kernel image.
# example:
# boot/kernel: gentoo
boot/kernel: vanilla
#gentoo

# This option tells catalyst which kernel sources to merge for this kernel
# label.  This can use normal portage atoms to specify a specific version.
# example:
# boot/kernel/gentoo/sources: gentoo-sources
boot/kernel/vanilla/sources: =vanilla-sources-2.6.17.11
#boot/kernel/gentoo/sources: =gentoo-sources-2.6.17-r6

# This option is the full path and filename to a kernel .config file that is
# used by genkernel to compile the kernel this label applies to.
# example:
# boot/kernel/gentoo/config: /tmp/2.6.11-smp.config
boot/kernel/vanilla/config: /root/catalyst/test/vanilla_config_2.6.17.11
#boot/kernel/gentoo/config: /root/catalyst/test/gentoo_config_2.6.17-r6

# This option sets genkernel parameters on a per-kernel basis and applies only
# to this kernel label.  This can be used for building options into only a
# single kernel, where compatibility may be an issue.  Since we do not use this
# on the official release media, it is left blank, but it follows the same
# syntax as livecd/gk_mainargs.
# example:
# boot/kernel/gentoo/gk_kernargs:
boot/kernel/gentoo/gk_kernargs:

# This option sets the USE flags used to build the kernel and also any packages
# which are defined under this kernel label.  These USE flags are additive from
# the default USE for the specified profile.
# example:
# boot/kernel/gentoo/use: pcmcia usb -X
boot/kernel/gentoo/use:

# This option appends an extension to the name of your kernel, as viewed by a
# uname -r/  This also affects any modules built under this kernel label.  This
# is useful for having two kernels using the same sources to keep the modules
# from overwriting each other.  We do not use this on the official media, so it
# is left blank.
# example:
# boot/kernel/gentoo/extraversion:
boot/kernel/gentoo/extraversion:

# This option is for merging kernel-dependent packages and external modules that
# are configured against this kernel label.
# example:
# boot/kernel/gentoo/packages: pcmcia-cs speedtouch slmodem globespan-adsl hostap-driver hostap-utils ipw2100 ipw2200 fritzcapi fcdsl cryptsetup
boot/kernel/gentoo/packages:

# This option is only for ppc64 machines.  If used it will create the /etc/yaboot.conf
# entry used for booting a ibm powerpc machine.
# example:
# boot/kernel/gentoo/machine_type: ibm
boot/kernel/gentoo/machine_type:

# This is only supported on ppc64 currently.  This entry sets up the console=
# boot parameters required for sending the output to the appropriate console.
# example:
# boot/kernel/gentoo/console: hvsi0
# boot/kernel/gentoo/console: hvc0
# boot/kernel/gentoo/console: tty0 ttyS0
boot/kernel/gentoo/console:

# This is a list of packages that will be unmerged after all the kernels have
# been built.  There are no checks on these packages, so be careful what you
# add here.  They can potentially break your CD.
# example:
# livecd/unmerge: acl attr autoconf automake bin86 binutils libtool m4 bison ld.so make perl patch linux-headers man-pages sash bison flex gettext texinfo ccache distcc addpatches man groff lib-compat miscfiles rsync sysklogd bc lcms libmng genkernel diffutils libperl gnuconfig gcc-config gcc bin86 cpio cronbase ed expat grub lilo help2man libtool gentoo-sources
livecd/unmerge:

# This option is used to empty the directories listed.  It is useful for getting
# rid of files that don't belong to a particular package, or removing files from
# a package that you wish to keep, but won't need the full functionality.
# example:
# livecd/empty: /var/tmp /var/cache /var/db /var/empty /var/lock /var/log /var/run /var/spool /var/state /tmp /usr/portage /usr/share/man /usr/share/info /usr/share/unimaps /usr/include /usr/share/zoneinfo /usr/share/dict /usr/share/doc /usr/share/ss /usr/share/state /usr/share/texinfo /usr/lib/python2.2 /usr/lib/portage /usr/share/gettext /usr/share/i18n /usr/share/rfc /usr/lib/X11/config /usr/lib/X11/etc /usr/lib/X11/doc /usr/src /usr/share/doc /usr/share/man /root/.ccache /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly /etc/logrotate.d /etc/rsync /usr/lib/awk /usr/lib/ccache /usr/lib/gcc-config /usr/lib/nfs /usr/local /usr/diet/include /usr/diet/man /usr/share/consolefonts/partialfonts /usr/share/consoletrans /usr/share/emacs /usr/share/gcc-data /usr/share/genkernel /etc/bootsplash/gentoo /etc/bootsplash/gentoo-highquality /etc/splash/gentoo /etc/splash/emergence /usr/share/gnuconfig /usr/share/lcms /usr/share/locale /etc/skel
livecd/empty:

# This option tells catalyst to clean specific files from the filesystem and is
# very useful in cleaning up stray files in /etc left over after livecd/unmerge.
# example:
# livecd/rm: /lib/*.a /usr/lib/*.a /usr/lib/gcc-lib/*/*/libgcj* /etc/dispatch-conf.conf /etc/etc-update.conf /etc/*- /etc/issue* /etc/make.conf /etc/man.conf /etc/*.old /root/.viminfo /usr/sbin/bootsplash* /usr/sbin/fb* /usr/sbin/fsck.cramfs /usr/sbin/fsck.minix /usr/sbin/mkfs.minix /usr/sbin/mkfs.bfs /usr/sbin/mkfs.cramfs /lib/security/pam_access.so /lib/security/pam_chroot.so /lib/security/pam_debug.so /lib/security/pam_ftp.so /lib/security/pam_issue.so /lib/security/pam_mail.so /lib/security/pam_motd.so /lib/security/pam_mkhomedir.so /lib/security/pam_postgresok.so /lib/security/pam_rhosts_auth.so /lib/security/pam_userdb.so /usr/share/consolefonts/1* /usr/share/consolefonts/7* /usr/share/consolefonts/8* /usr/share/consolefonts/9* /usr/share/consolefonts/A* /usr/share/consolefonts/C* /usr/share/consolefonts/E* /usr/share/consolefonts/G* /usr/share/consolefonts/L* /usr/share/consolefonts/M* /usr/share/consolefonts/R* /usr/share/consolefonts/a* /usr/share/consolefonts/c* /usr/share/consolefonts/dr* /usr/share/consolefonts/g* /usr/share/consolefonts/i* /usr/share/consolefonts/k* /usr/share/consolefonts/l* /usr/share/consolefonts/r* /usr/share/consolefonts/s* /usr/share/consolefonts/t* /usr/share/consolefonts/v* /etc/splash/livecd-2005.0/16* /etc/splash/livecd-2005.0/12* /etc/splash/livecd-2005.0/6* /etc/splash/livecd-2005.0/8* /etc/splash/livecd-2005.0/images/silent-16* /etc/splash/livecd-2005.0/images/silent-12* /etc/splash/livecd-2005.0/images/silent-6* /etc/splash/livecd-2005.0/images/silent-8* /etc/splash/livecd-2005.0/images/verbose-16* /etc/splash/livecd-2005.0/images/verbose-12* /etc/splash/livecd-2005.0/images/verbose-6* /etc/splash/livecd-2005.0/images/verbose-8* /etc/make.conf.example /etc/make.globals /etc/resolv.conf
livecd/rm:


I chose to use zisofs instead of squashfs so it would work with a vanilla kernel. One more thing that you need now is a kernel config located in my case at /root/catalyst/test/vanilla_config_2.6.17.11. You will also need genkernel, so you might have to emerge it. Again order catalyst to build it.

Code:
catalyst -f livecd-stage2.spec


At the end of this you will have a file called /root/catalyst/test/marijn_pentium4_kernelbootcd.iso, if you forgot to substitute your own labels for mine. In my case the iso-file was 299MB large. This is probably due to my not removing anything like in the comments. I only cared about it not being too large for a cd. Anyway, time for some critical remarks.

You now have a bootable cd-image, but it is barely usable as is and bloated because of not unmerging/removing anything after building everything is finished. The comments should give you some ideas on this.
Back to top
View user's profile Send private message
Gergan Penkov
Veteran
Veteran


Joined: 17 Jul 2004
Posts: 1464
Location: das kleinste Kuhdorf Deutschlands :)

PostPosted: Mon Aug 28, 2006 12:46 am    Post subject: Reply with quote

I've got 67MB minimal ISO (not that minimal mc, htop and such) at the end, but I had much more problems as I've built all the stages for ~x86 (although -02 and not -Os) together with nxsty glibc, gcc-4.1.1 + as-needed and hash-style linker-flags and nuked la-s.
I've even used the produced stage3 + livecd for a new install on a laptop and all was really good, because I didn't have to recompile & upgrade the system there.
If there is interest I'll also could post my spec-files and some of the patches, I've had to use:)
_________________
"I knew when an angel whispered into my ear,
You gotta get him away, yeah
Hey little bitch!
Be glad you finally walked away or you may have not lived another day."
Godsmack
Back to top
View user's profile Send private message
hakbeest
n00b
n00b


Joined: 26 Aug 2004
Posts: 27

PostPosted: Mon Aug 28, 2006 8:17 am    Post subject: Reply with quote

I for one would be interested in what spec-files you used and the problems you ran into.
Back to top
View user's profile Send private message
Gergan Penkov
Veteran
Veteran


Joined: 17 Jul 2004
Posts: 1464
Location: das kleinste Kuhdorf Deutschlands :)

PostPosted: Mon Aug 28, 2006 9:51 pm    Post subject: Reply with quote

well, probably I'll forget something, but ...
/etc/catalyst/catalyst.conf
Quote:

distdir="/usr/portage/distfiles"
options="autoresume ccache kerncache pkgcache seedcache snapcache"
sharedir="/usr/lib/catalyst"
storedir="/var/tmp/catalyst"
portdir="/usr/portage"
hash_function="crc32"
digests="md5 sha1"
envscript="/root/catalyst/.catalystrc"

/root/catalyst/.catalystrc
Quote:

export ACCEPT_KEYWORDS="~x86"

after that building the portage snapshot - nothing exciting :)
Building the stage1 - here are the most of the problems, I used stage2 (stage1 will not work at all - groff needs c++ compiler and it is available only with stage2-3), so I'm not sure how correct is this, but I've built it this way:
first - stage1 without ldflags (partly because it is impossible to add hash-style as glibc, binutils in the gentoo stage-2 are really old)
second - stage2 with the ldflags (the spec's coming afterwards..)
third - stage1 one using our stage2 (stage2 rebuilding with stage2 didn't work, catalyst simply stopped)
fourth - stage2 usign the our second stage1 (here the toolchain should be really ok)
fifth - stage3 using our second stage2 (it is a long building...)
Now about the problems, ccache bombs out, as the ~arch version uses patches which need autoreconf or somesuch, the easiest way
Code:
ebuild /path/to/ccache-xx.yy.ebuild unpack
(this should apply the patches and reconfigure)
after that unpack the original ccache-archive somewhere,
Code:
diff -Nuar /dir/where/the/original/is/unpacked /var/tmp/portage/ccache-xx.yy/work/ccache-xx.yy  to-some.patch

after that copy the ebuild from portage to the overlay, which would be used for the stage-build - change it to use only this patch and digest (more about the overlay later)
copy the nxsty ebuild to the save overlay dir.
now the spec-s (and after that some more problems)
the first round gentoo stage2 - stage1 stage0_pendragon20060814.spec
Quote:

subarch: athlon-xp
version_stamp: pendragon-2006-08-14a
target: stage1
rel_type: default
profile: default-linux/x86/2006.1
snapshot: pendragon-2006-08-14
source_subpath: default/stage2-i686-2006.0
distcc_hosts:
portage_confdir: /etc/portage
portage_overlay: /usr/local/catalyst
pkgcache_path: /tmp/packages
chost: i686-pc-linux-gnu
cflags: -march=athlon-xp -O2 -pipe
cxxflags: -march=athlon-xp -O2 -pipe
ldflags: -Wl,-O1 -Wl,--as-needed

I have my overlay in /usr/local/catalyst the cflags and the ldflags (still no --hash-style), here to note that I have patched catalyst - first because the new version of portage react strange if /usr/portage is not mounted and there seems to be some change in the way env-update is handled so:
Code:
--- /root/catalyst/catalyst-2.0/targets/stage1/stage1-controller.sh     2006-07-29 20:37:09.000000000 +0200
+++ /usr/lib/catalyst/targets/stage1/stage1-controller.sh       2006-08-15 15:44:14.000000000 +0200
@@ -49,7 +49,7 @@
                                binutils-config ${mythang}
                fi
                ${clst_CHROOT} ${clst_chroot_path}/tmp/stage1root \
-                       /usr/sbin/env-update || exit 1
+                       /usr/lib/portage/bin/env-update.sh || exit 1
 
                exec_in_chroot ${clst_sharedir}/targets/${clst_target}/${clst_target}-preclean-chroot.sh /tmp/stage1root || exit 1
        ;;
@@ -58,6 +58,8 @@
                rm -rf usr/share/{man,doc,info}/*
                # Zap all .pyc and .pyo files
                find -iname "*.py[co]" -exec rm -f {} \;
+               # Zap all .la files
+               find -iname "*.la" -exec rm -f {} \;
                # Cleanup all .a files except libgcc.a, *_nonshared.a and
                # /usr/lib/portage/bin/*.a
                find -type f -iname "*.a" | grep -v 'libgcc.a' | grep -v 'nonshared.a' \

the second part is the nuking of the la-s
Now I have had problems building the coreutils, because of this bug https://bugs.gentoo.org/show_bug.cgi?id=131874 and had to apply the patch mentioned there to perl (as stage one builds the packages with the build use flag).
Autoconf could die sometimes on stage1 because of missing perl-module, just resuming helped here, as the things get build in the correct order afterwards.
I have had a patch to portage to remove the la-s, which could now be dropped as you could add INSTALL_MASK="*.la" in make.conf, although probably this should go in the .catalyst file as you could not directly modify make.conf.
after that building was only a matter of time:
from our first stage1 to stage2 stage02alpha_pendragon20060814.spec
Quote:

subarch: athlon-xp
version_stamp: pendragon-2006-08-14-alpha
target: stage2
rel_type: default
profile: default-linux/x86/2006.1
snapshot: pendragon-2006-08-14
source_subpath: default/stage1-athlon-xp-pendragon-2006-08-14a
distcc_hosts:
portage_confdir: /etc/portage
portage_overlay: /usr/local/catalyst
pkgcache_path: /tmp/packages
chost: i686-pc-linux-gnu
cflags: -march=athlon-xp -O2 -pipe
cxxflags: -march=athlon-xp -O2 -pipe
ldflags: -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=both

added hash-style
again stage1 from our stage2 stagestage01_pendragon20060814.spec
Quote:

subarch: athlon-xp
version_stamp: pendragon-2006-08-14b
target: stage1
rel_type: default
profile: default-linux/x86/2006.1
snapshot: pendragon-2006-08-14
source_subpath: default/stage2-athlon-xp-pendragon-2006-08-14-alpha
distcc_hosts:
portage_confdir: /etc/portage
portage_overlay: /usr/local/catalyst
pkgcache_path: /tmp/packages
chost: i686-pc-linux-gnu
cflags: -march=athlon-xp -O2 -pipe
cxxflags: -march=athlon-xp -O2 -pipe
ldflags: -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=both

and after that just the same for stage2 stage3, there is no difference at all
the first stage of the livecd, there is still some work to do here, I wanted to build gnome livecd (with cvs-builds but in some way the chroot could not write to the distdir, so I've just built instead the minimal one - but some of the useflags are still there :( )
I must say that most of the livecd specs are copied from the gentoo-cvs (this are (or were) the ones for the 2006.1 release - of course there are some changes, but the releng and the catalyst team have really done a great job)
livecd-stage1-minimal-rc1_pendragon20060815.spec
Quote:

subarch: athlon-xp
version_stamp: pendragon-2006-08-15-rc2
target: livecd-stage1
rel_type: default
profile: default-linux/x86/2006.1
snapshot: pendragon-2006-08-15
source_subpath: default/stage3-athlon-xp-pendragon-2006-08-15-rc1
distcc_hosts:
portage_confdir: /etc/portage
portage_overlay:/usr/local/special/gnome /usr/local/special/catalyst
pkgcache_path: /tmp/packages
livecd/use:
7zip
alsa
asf
avahi
bzip2
cdparanoia
cdr
crypt
dbus
dts
dvd
dvdr
dvdread
expat
flac
gif
gnutls
hal
ipv6
jpeg
live
livecd
mad
mng
mpeg
mp3
numeric
ogg
pam
python
socks5
ssl
svg
tagwriting
theora
tiff
tcpd
pdf
png
vorbis
xml
xslt
xv
x264
wma
livecd/packages:
app-admin/ide-smart
app-admin/logrotate
app-admin/passook
app-admin/pwgen
app-admin/sudo
app-admin/syslog-ng
app-arch/p7zip
app-arch/mt-st
app-arch/unrar
app-arch/unzip
app-benchmarks/cpuburn
app-cdr/cdrtools
app-crypt/gnupg
app-editors/nano
app-misc/livecd-tools
app-misc/screen
app-misc/vlock
app-misc/mc
app-portage/gentoolkit
app-portage/mirrorselect
app-portage/udept
app-portage/ufed
dev-util/ccache
media-gfx/fbgrab
net-analyzer/iptraf
net-analyzer/netcat
net-analyzer/nmap
net-analyzer/tcpdump
net-analyzer/tcptraceroute
net-analyzer/traceroute
net-fs/nfs-utils
net-ftp/lftp
net-misc/bridge-utils
net-misc/dhcpcd
net-misc/iputils
net-misc/rdate
net-misc/vconfig
net-misc/vpnc
net-misc/whois
net-proxy/dante
net-proxy/tsocks
net-wireless/bcm43xx-fwcutter
net-wireless/ipw2100-firmware
net-wireless/ipw2200-firmware
net-wireless/prism54-firmware
net-wireless/wireless-tools
net-wireless/wpa_supplicant
net-wireless/zd1201-firmware
sys-apps/apmd
sys-apps/eject
sys-apps/ethtool
sys-apps/fxload
sys-apps/gli
sys-apps/gradm
sys-apps/hdparm
sys-apps/hwsetup
sys-apps/iproute2
sys-apps/memtester
sys-apps/netplug
sys-apps/parted
sys-apps/slocate
sys-apps/smartmontools
sys-block/gpart
sys-block/partimage
sys-boot/grub
sys-boot/syslinux
sys-devel/distcc
sys-fs/dosfstools
sys-fs/e2fsprogs
sys-fs/evms
sys-fs/jfsutils
sys-fs/lsscsi
sys-fs/lvm2
sys-fs/mdadm
sys-fs/ntfsprogs
sys-fs/raidtools
sys-fs/reiserfsprogs
sys-fs/xfsprogs
sys-kernel/genkernel
sys-libs/gpm
sys-power/acpid
sys-process/vixie-cron

and the final stage2-minimal - livecd-stage2-minimal.spec
Quote:

subarch: x86
version_stamp: 2006.1
target: livecd-stage2
rel_type: default
profile: default-linux/x86/no-nptl
snapshot: 2006.1
source_subpath: default/livecd-stage1-x86-2006.1
livecd/fstype: squashfs
livecd/cdtar: /usr/lib/catalyst/livecd/cdtar/isolinux-3.09-memtest86+-cdtar.tar.bz2
livecd/iso: /var/tmp/catalyst/builds/default/install-x86-minimal-2006.1.iso
livecd/splash_type: gensplash
livecd/splash_theme: livecd-2006.1
livecd/volid: Gentoo Linux x86 2006.1
livecd/type: gentoo-release-minimal
livecd/bootargs: dokeymap
livecd/gk_mainargs: --lvm2 --dmraid --evms2
boot/kernel: gentoo
boot/kernel/gentoo/sources: gentoo-sources
boot/kernel/gentoo/config: /root/livecd/kconfig/releases/2006.1/x86/installcd-2.6.17.config
boot/kernel/gentoo/use: pcmcia usb -X png truetype -qt -qt3 -qt4
boot/kernel/gentoo/packages:
media-gfx/splashutils
media-gfx/splash-themes-livecd
sys-apps/pcmciautils
net-dialup/slmodem
net-dialup/globespan-adsl
net-wireless/hostap-utils
net-dialup/fritzcapi
net-dialup/fcdsl
sys-fs/cryptsetup-luks
net-wireless/rt2500
net-wireless/acx
livecd/unmerge:
alsa-headers
autoconf
autoconf-wrapper
automake
automake-wrapper
binutils
binutils-config
bison
busybox
cpio
diffutils
expat
flex
gcc
gcc-config
genkernel
gentoo-sources
gettext
gnuconfig
groff
help2man
libperl
libstdc++-v3
libtool
linux-headers
m4
make
man
man-pages
miscfiles
pax-utils
patch
perl
perl-cleaner
perl-Test-Simple
PodParser
pycrypto
python-fchksum
rpm2targz
rsync
sandbox
Test-Harness
texinfo
livecd/empty:
/etc/bootsplash/gentoo
/etc/bootsplash/gentoo-highquality
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/logrotate.d
/etc/modules.autoload.d
/etc/rsync
/etc/runlevels/single
/etc/skel
/etc/splash/emergence
/etc/splash/gentoo
/lib/dev-state
/lib/udev-state
/lib64/dev-state
/lib64/udev-state
/root/.ccache
/tmp
/usr/diet/include
/usr/diet/man
/usr/i386-gentoo-linux-uclibc
/usr/i386-pc-linux-gnu
/usr/i386-pc-linux-uclibc
/usr/include
/usr/lib/X11/config
/usr/lib/X11/doc
/usr/lib/X11/etc
/usr/lib/awk
/usr/lib/ccache
/usr/lib/gcc-config
/usr/lib/gconv
/usr/lib/nfs
/usr/lib/perl5
/usr/lib/portage
/usr/lib/python2.2
/usr/lib/python2.3
/usr/lib/python2.4/tests
/usr/lib64/X11/config
/usr/lib64/X11/doc
/usr/lib64/X11/etc
/usr/lib64/awk
/usr/lib64/ccache
/usr/lib64/gcc-config
/usr/lib64/gconv
/usr/lib64/nfs
/usr/lib64/perl5
/usr/lib64/portage
/usr/lib64/python2.2
/usr/lib64/python2.3
/usr/lib64/python2.4/tests
/usr/local
/usr/portage
/usr/powerpc-unknown-linux-gnu
/usr/powerpc64-unknown-linux-gnu
/usr/share/aclocal
/usr/share/baselayout
/usr/share/binutils-data
/usr/share/consolefonts/partialfonts
/usr/share/consoletrans
/usr/share/dict
/usr/share/doc
/usr/share/emacs
/usr/share/et
/usr/share/gcc-data
/usr/share/genkernel
/usr/share/gettext
/usr/share/glib-2.0
/usr/share/gnuconfig
/usr/share/gtk-doc
/usr/share/i18n
/usr/share/info
/usr/share/lcms
/usr/share/libtool
/usr/share/locale
/usr/share/man
/usr/share/perl
/usr/share/rfc
/usr/share/ss
/usr/share/state
/usr/share/texinfo
/usr/share/unimaps
/usr/share/zoneinfo
/usr/sparc-unknown-linux-gnu
/usr/src
/usr/x86_64-pc-linux-gnu
/var/cache
/var/db
/var/empty
/var/lib/portage
/var/lock
/var/log
/var/run
/var/spool
/var/state
/var/tmp
livecd/rm:
/boot/System*
/boot/initr*
/boot/kernel*
/etc/*-
/etc/*.old
/etc/default/audioctl
/etc/dispatch-conf.conf
/etc/env.d/05binutils
/etc/env.d/05gcc
/etc/etc-update.conf
/etc/hosts.bck
/etc/issue*
/etc/genkernel.conf
/etc/make.conf
/etc/make.conf.example
/etc/make.globals
/etc/make.profile
/etc/man.conf
/etc/resolv.conf
/etc/splash/livecd-2006.1/12*
/etc/splash/livecd-2006.1/14*
/etc/splash/livecd-2006.1/16*
/etc/splash/livecd-2006.1/19*
/etc/splash/livecd-2006.1/6*
/etc/splash/livecd-2006.1/8*
/etc/splash/livecd-2006.1/images/background-12*
/etc/splash/livecd-2006.1/images/background-14*
/etc/splash/livecd-2006.1/images/background-16*
/etc/splash/livecd-2006.1/images/background-19*
/etc/splash/livecd-2006.1/images/background-6*
/etc/splash/livecd-2006.1/images/background-8*
/etc/splash/livecd-2006.1/images/verbose-12*
/etc/splash/livecd-2006.1/images/verbose-14*
/etc/splash/livecd-2006.1/images/verbose-16*
/etc/splash/livecd-2006.1/images/verbose-19*
/etc/splash/livecd-2006.1/images/verbose-6*
/etc/splash/livecd-2006.1/images/verbose-8*
/lib*/*.a
/lib*/*.la
/lib*/cpp
/lib*/security/pam_access.so
/lib*/security/pam_chroot.so
/lib*/security/pam_debug.so
/lib*/security/pam_ftp.so
/lib*/security/pam_issue.so
/lib*/security/pam_mail.so
/lib*/security/pam_mkhomedir.so
/lib*/security/pam_motd.so
/lib*/security/pam_postgresok.so
/lib*/security/pam_rhosts_auth.so
/lib*/security/pam_userdb.so
/root/.bash_history
/root/.viminfo
/sbin/fsck.cramfs
/sbin/fsck.minix
/sbin/mkfs.bfs
/sbin/mkfs.cramfs
/sbin/mkfs.minix
/usr/bin/addr2line
/usr/bin/ar
/usr/bin/as
/usr/bin/audioctl
/usr/bin/c++*
/usr/bin/cc
/usr/bin/cjpeg
/usr/bin/cpp
/usr/bin/djpeg
/usr/bin/ebuild
/usr/bin/emerge
/usr/bin/elftoaout
/usr/bin/f77
/usr/bin/g++*
/usr/bin/g77
/usr/bin/gcc*
/usr/bin/genkernel
/usr/bin/gprof
/usr/bin/i386-gentoo-linux-uclibc-*
/usr/bin/i386-pc-linux-*
/usr/bin/jpegtran
/usr/bin/ld
/usr/bin/libpng*
/usr/bin/nm
/usr/bin/objcopy
/usr/bin/objdump
/usr/bin/piggyback*
/usr/bin/portageq
/usr/bin/ranlib
/usr/bin/readelf
/usr/bin/repoman
/usr/bin/size
/usr/bin/powerpc-unknown-linux-gnu-*
/usr/bin/powerpc64-unknown-linux-gnu-*
/usr/bin/sparc-unknown-linux-gnu-*
/usr/bin/sparc64-unknown-linux-gnu-*
/usr/bin/strings
/usr/bin/strip
/usr/bin/tbz2tool
/usr/bin/x86_64-pc-linux-gnu-*
/usr/bin/xpak
/usr/bin/yacc
/usr/lib*/*.a
/usr/lib*/*.la
/usr/lib*/gcc-lib/*/*/libgcj*
/usr/sbin/archive-conf
/usr/sbin/bootsplash*
/usr/sbin/dispatch-conf
/usr/sbin/emaint
/usr/sbin/emerge-webrsync
/usr/sbin/env-update
/usr/sbin/fb*
/usr/sbin/fixpackages
/usr/sbin/quickpkg
/usr/sbin/regenworld
/usr/share/consolefonts/1*
/usr/share/consolefonts/7*
/usr/share/consolefonts/8*
/usr/share/consolefonts/9*
/usr/share/consolefonts/A*
/usr/share/consolefonts/C*
/usr/share/consolefonts/E*
/usr/share/consolefonts/G*
/usr/share/consolefonts/L*
/usr/share/consolefonts/M*
/usr/share/consolefonts/R*
/usr/share/consolefonts/a*
/usr/share/consolefonts/c*
/usr/share/consolefonts/dr*
/usr/share/consolefonts/g*
/usr/share/consolefonts/i*
/usr/share/consolefonts/k*
/usr/share/consolefonts/l*
/usr/share/consolefonts/r*
/usr/share/consolefonts/s*
/usr/share/consolefonts/t*
/usr/share/consolefonts/v*
/usr/share/misc/*.old

and this gives me
Quote:
67248128 2006-08-17 19:13 /var/tmp/catalyst/builds/default/pendragon-athlon-xp-minimal-2006-08-15-alpha.iso

:)
One could add with overlay some of the stages or some other stuff, but I didn't have the time to tinker with this, probably could be used to build full gpr-d system and install it - if the gli works :) and so on nice stuff
_________________
"I knew when an angel whispered into my ear,
You gotta get him away, yeah
Hey little bitch!
Be glad you finally walked away or you may have not lived another day."
Godsmack
Back to top
View user's profile Send private message
przeuj
Tux's lil' helper
Tux's lil' helper


Joined: 11 May 2004
Posts: 94
Location: Krakow

PostPosted: Sun Sep 10, 2006 1:10 am    Post subject: Reply with quote

I am trying to use distcc feature for catalyst. Added it to the catalyst.conf, but it does not seem to work. also I included the hosts in spec files. nothing happens. is this implemented? have you tried it?

Thanks,
Bartek
_________________
[img]http://www.openwengo.org/static/eng_eng/images/banners/wengophone.png[/img]
Back to top
View user's profile Send private message
rebeskes
n00b
n00b


Joined: 27 Sep 2006
Posts: 2

PostPosted: Wed Sep 27, 2006 1:12 pm    Post subject: Reply with quote

I do
Code:
emerge sync

then
Code:

emerge -s catalyst
Searching...
[ Results for search key : catalyst ]
[ Applications found : 1 ]

*  dev-util/catalyst
      Latest version available: 1.1.10.10
      Latest version installed: 1.1.10.10
      Size of files: 557 kB
      Homepage:      http://www.gentoo.org/proj/en/releng/catalyst
      Description:   Gentoo Linux official release metatool
      License:       GPL-2

where is catalyst2?????
sorry solved!!!
Back to top
View user's profile Send private message
rebeskes
n00b
n00b


Joined: 27 Sep 2006
Posts: 2

PostPosted: Wed Sep 27, 2006 5:45 pm    Post subject: Reply with quote

i have another problem that hopped that it would be solved with the 2.0 release
i do

Code:

catalyst -s oslab


Code:
>>> --newuse implies --update... adding --update to options.

!!! All ebuilds that could satisfy "sys-apps/gli" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-apps/gli-0.4.2 (masked by: package.mask, ~x86 keyword)
# Chris Gianelloni <wolf31o2@gentoo.org> (19 Dec 2005)
# This is the Gentoo Linux Installer.  This is currently masked because it can
# lead to some serious breakages on a machine.  If you are not developing on
# this package, I would strongly recommend against using it.  If you break your
# system with this, you're on your own.  You have been warned.

- sys-apps/gli-0.4 (masked by: package.mask, ~x86 keyword)
- sys-apps/gli-0.4.1 (masked by: package.mask, ~x86 keyword)

For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.


!!! catalyst: Error in attempt to build packages


Traceback (most recent call last):
  File "modules/generic_stage_target.py", line 1152, in build_packages
    " build_packages "+mypack,"Error in attempt to build packages",env=self.env)
  File "/usr/lib/catalyst/modules/catalyst_support.py", line 487, in cmd
    raise CatalystError,myexc
CatalystError: <unprintable instance object>
None


and i really need gli!!! Does anyone have an idea how to solve it?
Back to top
View user's profile Send private message
richard.scott
Veteran
Veteran


Joined: 19 May 2003
Posts: 1497
Location: Oxfordshire, UK

PostPosted: Wed Oct 04, 2006 5:14 pm    Post subject: Reply with quote

You'd need to use the portage_confdir entry:

Code:
This is an optional directory containing portage configuration files.  It
# follows the same syntax as /etc/portage and should be consistent across all
# targets to minimize problems.
# example:
# portage_confdir: /etc/portage


and in there you'd have a package.keywords file with something like the following in it:

Code:
sys-apps/gli ~x86
Back to top
View user's profile Send private message
AdmiralNemo
Apprentice
Apprentice


Joined: 25 Sep 2004
Posts: 247
Location: Overland Park, KS

PostPosted: Wed Feb 14, 2007 2:01 am    Post subject: Reply with quote

Okay, I don't mean to dig up a dead thread here, but this looks like the best place to ask. I am trying to use Catalyst to create myself a custom LiveDVD, but I cannot even get a stage1 build to go. At first, I was doing alright, but in the midst of compiling glibc, something segfaulted and catalyst died. I assumed this had something to do with the fact I was attempting to build a 32-bit environment from within a 64-bit one, so I decided to try it from within VMware. From there I got even less luck. I got my portage snapshot created, but when I attempt to build a stage1, I get the following errors:
Code:
Traceback (most recent call last):
  File "/tmp/build.py", line 18, in ?
    pkgs = scan_profile("packages")
  File "/tmp/build.py", line 15, in scan_profile
    return portage.stack_lists( portage.grab_multiple(file, portage.settings.profiles, portage.grabfile), incremental=1$
AttributeError: 'module' object has no attribute 'grab_multiple'
Your profile seems to be broken.
Could not build a list of build packages.
Double check your /etc/make.profile link and the 'packages' files.

!!! catalyst: build script failed


Traceback (most recent call last):
  File "modules/generic_stage_target.py", line 411, in run_local
    "/"+self.settings["target"]+".sh run","build script failed")
  File "/usr/lib/catalyst/modules/catalyst_support.py", line 102, in cmd
    raise CatalystError,myexc
CatalystError: <unprintable instance object>
None

!!! catalyst: Stage build aborting due to error.
If anyone can help, I would greatly appreciate it. Thanks.

Here is my stage1.spec, in case it could be of use:
Code:
subarch: i686
target: stage1
version_stamp: 2006.1
rel_type: default
profile: default-linux/x86/no-nptl
snapshot: 20070213
source_subpath: default/stage3-i686-2006.1

_________________
Help the Unanswered
Back to top
View user's profile Send private message
justin_brody
Apprentice
Apprentice


Joined: 26 Jan 2005
Posts: 283

PostPosted: Sun Feb 24, 2008 6:00 pm    Post subject: Reply with quote

Just a note - when building the stage3 "chost" and "cflags" aren't recognized and will choke catalyst - they should be commented out of the stage3.spec
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum