I am trying to work my way through catalyst to make a LiveCD. I have created my own profile and placed it in the "Portage overlay" directory. I built a Portage snapshot using catalyst 1.1.1, however, I haven't been able to get the stage1 to build. Here's the log of the attempt; the seed was the stage3 i686 tarball from the 2004.3 release: ---------------------------------------------------------------- DreamSong catalyst # catalyst -f stage1.spec Gentoo Catalyst, version 1.1.0 Copyright 2003-2004 The Gentoo Foundation Distributed under the GNU General Public License version 2 Using default Catalyst configuration file, /etc/catalyst/catalyst.conf Setting storedir to default value "/var/tmp/catalyst" Setting portdir to default value "/usr/portage" Setting distdir to config file value "/usr/portage/distfiles" Setting options to config file value "ccache pkgcache kerncache" Setting sharedir to config file value "/usr/lib/catalyst" Compiler cache support enabled. Package cache support enabled. Kernel cache support enabled. Building natively for x86 Setting up directories... Running command "rm -rf /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb" Unpacking stage tarball... Running command "tar xjpf /var/tmp/catalyst/builds/default/stage3-i686-2004.3.tar.bz2 -C /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb" Unpacking portage tree snapshot... Running command "tar xjpf /var/tmp/catalyst/snapshots/portage-20041127-znmeb.tar.bz2 -C /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb/usr" Configuring profile link... Running command "rm -f /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb/etc/make.profile" Running command "ln -sf ../usr/portage/profiles/i686-science /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb/etc/make.profile" Setting up chroot... Running command "cp /etc/resolv.conf /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb/etc" Running command "rm -f /var/tmp/catalyst/tmp/default/stage1-i686-20041127-znmeb/etc/make.conf" Running command "/bin/bash /usr/lib/catalyst/targets/stage1/stage1.sh run" >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... Performing Global Updates: /usr/portage/profiles/updates/4Q-2004 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' .....................................s.... Calculating dependencies ...done! >>> emerge (1 of 1) dev-util/ccache-2.3 to / *** Adjusting ccache permissions for portage user... >>> md5 src_uri ;-) ccache-2.3.tar.gz >>> Unpacking source... >>> Unpacking ccache-2.3.tar.gz to /var/tmp/portage/ccache-2.3/work >>> Source unpacked. ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. configure: Configuring ccache checking for i686-pc-linux-gnu-gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /bin/install -c checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking whether time.h and sys/time.h may both be included... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking for strings.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for realpath... yes checking for snprintf... yes checking for vsnprintf... yes checking for vasprintf... yes checking for asprintf... yes checking for mkstemp... yes checking for gethostname... yes checking for compar_fn_t in stdlib.h... yes checking for C99 vsnprintf... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o ccache.o ccache.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o mdfour.o mdfour.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o hash.o hash.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o execute.o execute.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o util.o util.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o args.o args.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o stats.ostats.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o cleanup.o cleanup.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o snprintf.o snprintf.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -c -o unify.ounify.c gcc -O3 -march=pentium3 -pipe -fomit-frame-pointer -Wall -W -I. -o ccache ccache.o mdfour.o hash.o execute.o util.o args.o stats.o cleanup.o snprintf.o unify.o >>> Test phase [not enabled]: dev-util/ccache-2.3 >>> Install ccache-2.3 into /var/tmp/portage/ccache-2.3/image/ category dev-util man: prepallstrip: strip: strip: usr/bin/ccache >>> Completed installing into /var/tmp/portage/ccache-2.3/image/ ./ ./usr/ ./usr/bin/ ./usr/bin/ccache-config ./usr/bin/ccache ./usr/lib/ ./usr/lib/ccache/ ./usr/lib/ccache/bin/ ./usr/lib/ccache/bin/.keep ./usr/share/ ./usr/share/doc/ ./usr/share/doc/ccache-2.3/ ./usr/share/doc/ccache-2.3/html/ ./usr/share/doc/ccache-2.3/html/index.html ./usr/share/doc/ccache-2.3/html/ccache-man.html ./usr/share/doc/ccache-2.3/README.gz ./usr/share/man/ ./usr/share/man/man1/ ./usr/share/man/man1/ccache.1.gz ./root/ ./root/.ccache/ ./root/.ccache/.keep >>> Done. >>> extracting info >>> extracting ccache-2.3 >>> Merging dev-util/ccache-2.3 to / --- /usr/ --- /usr/bin/ >>> /usr/bin/ccache-config >>> /usr/bin/ccache --- /usr/lib/ --- /usr/lib/ccache/ --- /usr/lib/ccache/bin/ >>> /usr/lib/ccache/bin/.keep --- /usr/share/ --- /usr/share/doc/ >>> /usr/share/doc/ccache-2.3/ >>> /usr/share/doc/ccache-2.3/html/ >>> /usr/share/doc/ccache-2.3/html/index.html >>> /usr/share/doc/ccache-2.3/html/ccache-man.html >>> /usr/share/doc/ccache-2.3/README.gz --- /usr/share/man/ --- /usr/share/man/man1/ >>> /usr/share/man/man1/ccache.1.gz --- /root/ >>> /root/.ccache/ >>> /root/.ccache/.keep * Scanning for compiler front-ends... Creating ccache shadow link: /usr/lib/ccache/bin/gcc... Creating ccache shadow link: /usr/lib/ccache/bin/cc... Creating ccache shadow link: /usr/lib/ccache/bin/c++... Creating ccache shadow link: /usr/lib/ccache/bin/g++... Creating ccache shadow link: /usr/lib/ccache/bin/i686-pc-linux-gnu-gcc... Creating ccache shadow link: /usr/lib/ccache/bin/i686-pc-linux-gnu-c++... Creating ccache shadow link: /usr/lib/ccache/bin/i686-pc-linux-gnu-g++... * To use ccache with **non-Portage** C compiling, add * /usr/lib/ccache/bin to the beginning of your path, before /usr/bin. * Portage 2.0.46-r11+ will automatically take advantage of ccache with * no additional steps. If this is your first install of ccache, type * something like this to set a maximum cache size of 2GB: * # ccache -M 2G >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... >>> dev-util/ccache-2.3 merged. >>> clean: No packages selected for removal. >>> Auto-cleaning packages ... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. >>> /tmp/stage1root/tmp doesn't exist, creating it... >>> /tmp/stage1root/var/tmp doesn't exist, creating it... >>> /tmp/stage1root//var/cache/edb doesn't exist, creating it... >>> /tmp/stage1root//var/cache/edb/dep doesn't exist, creating it... Performing Global Updates: /usr/portage/profiles/updates/3Q-2002 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ........................................................................................ Performing Global Updates: /usr/portage/profiles/updates/4Q-2002 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ................................................................................ Performing Global Updates: /usr/portage/profiles/updates/1Q-2003 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' .......................... Performing Global Updates: /usr/portage/profiles/updates/2Q-2003 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ................................................................................. Performing Global Updates: /usr/portage/profiles/updates/3Q-2003 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Performing Global Updates: /usr/portage/profiles/updates/4Q-2003 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ..................................................................... Performing Global Updates: /usr/portage/profiles/updates/1Q-2004 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ......................................... Performing Global Updates: /usr/portage/profiles/updates/2Q-2004 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ................................................................................................................ Performing Global Updates: /usr/portage/profiles/updates/3Q-2004 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' .............................................................................................................................................................................................................. Performing Global Updates: /usr/portage/profiles/updates/4Q-2004 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' @='/var/db move' s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*' ......................................... ** Skipping packages. Run 'fixpackages' or set it in FEATURES to fix the tbz2's in the packages directory. Note: This can take a very long time. emerge: please tell me what to do. Usage: emerge [ options ] [ action ] [ ebuildfile | tbz2file | dependency ] [ ... ] emerge [ options ] [ action ] < system | world > emerge < --sync | --metadata | --info > emerge --resume [ --pretend | --ask | --skipfirst ] emerge --help [ system | config | sync ] Options: -[abcCdDefhikKlnoOpPsSuUvV] [--oneshot] [--newuse] [--noconfmem] [--columns] [--nospinner] Actions: [ --clean | --depclean | --inject | --prune | --regen | --search | --unmerge ] For more help try 'emerge --help' or consult the man page. !!! catalyst: build script failed !!! catalyst: Stage build aborting due to error. !!! catalyst: could not complete build -------------------------------------------------------- And the spec file ## generic installation stage specfile ## used to build a stage1, stage2, or stage3 installation tarball ## John Davis <zhen@gentoo.org> # subarch can be any of the supported Catalyst subarches (like athlon-xp). Refer # to the catalyst reference manual (http://www.gentoo.org/proj/en/releng/catalys t) for supported arches. # example: # subarch: athlon-xp subarch: i686 # version stamp is an identifier for the build. can be anything you want it to b e, but it # is usually a date. # example: # version_stamp: 2004.2 version_stamp: 20041127-znmeb # target specifies what type of build Catalyst is to do. check the catalyst refe rence manual # for supported targets. # example: # target: stage2 target: stage1 # rel_type defines what kind of build we are doing. usually, default will suffic e. # example: # rel_type: default rel_type: default # system profile used to build the media # example: # profile: default-x86-2004.0 profile: i686-science # which snapshot to use # example: # snapshot: 20040614 snapshot: 20041127-znmeb # where the seed stage comes from, path is relative to $clst_sharedir (catalyst. conf) # example: # default/stage3-x86-2004.1 source_subpath: default/stage3-i686-2004.3 ----------------------------------------------------------------------- My profile is based on /usr/portage/profiles/default-linux/x86/2004.3/; the only difference is in "make.defaults", where I've modified the USE flags: DreamSong catalyst # diff /usr/portage/profiles/default-linux/x86/2004.3/make.defaults /usr/local/portage/profiles/i686-science/make.defaults 8c8 < GRP_STAGE23_USE="ipv6 pam tcpd readline nls ssl gpm perl python berkdb ncurses" --- > GRP_STAGE23_USE="mmx fortran f77 ipv6 pam tcpd readline nls ssl gpm perl python berkdb ncurses" 15c15 < USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77 foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib" --- > USE="mmx x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77 foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib" Reproducible: Always Steps to Reproduce: DreamSong catalyst # emerge info Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.4.25-gentoo-r12 i686) ================================================================= System uname: 2.4.25-gentoo-r12 i686 Pentium III (Coppermine) Gentoo Base System version 1.4.16 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux-headers-2.4.21-r1 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com/ http://212.219.56.131/sites/www.ibiblio.org/gentoo/ ftp://gg3.net/pub/linux/gentoo/ http://mirror.gentoo.gr.jp ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa ansi apm arts auctex avi berkdb bitmap-fonts blas cdr clisp cmucl crypt cups emacs encode esd f77 fam flac flash fltk foomaticdb fortran fpx gcl gdbm gif gpm graphviz guile imagemagick imlib jack jack-tmpfs java jbig jpeg kde ladcca lcms ldap libg++ libwww mad mikmod mmx motif mpeg mysql nas ncurses nls oggvorbis opengl oss pam pdflib perl png portaudio python qt quicktime readline ruby sbcl sdl slang sndfile spell sse ssl svg svga tcltk tcpd tetex tiff truetype wmf x86 xemacs xml2 xmms xv zlib" DreamSong catalyst #
Seed stage has to be an unoptimized stage. You would have to use stage3-x86-2004.3 rather than stage3-i686-2004.3 or it won't work.
That didn't work. Same error message, same place: emerge: please tell me what to do. Usage: emerge [ options ] [ action ] [ ebuildfile | tbz2file | dependency ] [ ... ] emerge [ options ] [ action ] < system | world > emerge < --sync | --metadata | --info > emerge --resume [ --pretend | --ask | --skipfirst ] emerge --help [ system | config | sync ] Options: -[abcCdDefhikKlnoOpPsSuUvV] [--oneshot] [--newuse] [--noconfmem] [--columns] [--nospinner] Actions: [ --clean | --depclean | --inject | --prune | --regen | --search | --unmerge ] For more help try 'emerge --help' or consult the man page. !!! catalyst: build script failed !!! catalyst: Stage build aborting due to error. !!! catalyst: could not complete build ------------------------------------------------------------------------ I've seen that message ("emerge: please tell me what to do") before, when I've forgotten to include a "target" on an emerge command. I think one of the scripts in catalyst is missing a target. Here's the new spec file: ## generic installation stage specfile ## used to build a stage1, stage2, or stage3 installation tarball ## John Davis <zhen@gentoo.org> # subarch can be any of the supported Catalyst subarches (like athlon-xp). Refer # to the catalyst reference manual (http://www.gentoo.org/proj/en/releng/catalys t) for supported arches. # example: # subarch: athlon-xp subarch: x86 # version stamp is an identifier for the build. can be anything you want it to b e, but it # is usually a date. # example: # version_stamp: 2004.2 version_stamp: 20041127-znmeb # target specifies what type of build Catalyst is to do. check the catalyst refe rence manual # for supported targets. # example: # target: stage2 target: stage1 # rel_type defines what kind of build we are doing. usually, default will suffic e. # example: # rel_type: default rel_type: default # system profile used to build the media # example: # profile: default-x86-2004.0 profile: i686-science # which snapshot to use # example: # snapshot: 20040614 snapshot: 20041127-znmeb # where the seed stage comes from, path is relative to $clst_sharedir (catalyst. conf) # example: # default/stage3-x86-2004.1 source_subpath: default/stage3-x86-2004.3 ------------------------------------------------------------------------------ One other note: I was watching it run, and in the step before, it compiled "ccache", and it was using the *host* CFLAGS -- "march=pentium3", etc. Is that right, or should it be using the target CFLAGS -- generic x86 or i686?
All of the scripts that come with catalyst are examples and need to be edited to suit your needs. I'm sorry, but without more information there simply isn't anything I can do as catalyst works as it is supposed to when there is a proper spec file in use. Perhaps you could check out gentoo/src/releng/specs/2004.3/x86 from viewcvs and use those instead.