Definitions used in this document. where <default> is the default directory of the base RPMS. where <sitename> is your sitename which is the directory under sites/ . where <tree> is the directory where <default>/ exists In this example it is /mnt/src/sl30rolling/i386/ Note that it must be a full path name. ------------------------------------------------------------------------------ Steps for making your own site customization ------------------------------------------------------------------------------ Prereqs ------- Note that the steps outlined here must be executed on a system which has Scientific Linux (SL) with the anaconda and anaconda-runtime rpms installed. The "Development Tools" group must have been installed if you wish to build your own rpms. STEPS ----- In this example we will use new site "newsite" so $SITE is "newsite". <tree> is in /mnt/src/sl30rolling/i386/ and is defined as $TREE <default> is SL and is defined as $DEFAULT DEFAULT=SL SITE=newsite TREE=/mnt/src/sl30rolling/i386/ cd $TREE mkdir sites/newsite # Create new site area cd sites/example find . -print | cpio -pvdum ../newsite # copy over example area as a start cd ../newsite/Updates <add and remove RPMS in "Updates" to customize as you want> For the rpms you want to change install the SRPM and then make changes as necessary in /usr/src/redhat/SPECS/ . You should change the version string so as to distinguish it from the original. Some rpms that you might want to change are yum-conf so to point to your local yum repository example-release to contain your own release name. This will change the name of this rpm and will require you to change the example-release entry in ../base/comps* so the installer will find the right rpm. To install the SRPM for example-release so that you can modify it for your needs. rpm -iv $TREE/sites/example/SRPMS/example-release* The spec file after installing will be in /usr/src/redhat/SPECS/example-release.spec . It is easiest to copy this spec file as newsite-release.spec and modify that. Then rebuild your new release rpm with rpmbuild -ba /usr/src/redhat/SPECS/newsite-release.spec The new newsite-release rpm will be in /usr/src/redhat/RPMS/i386/ anaconda-images This rpm contains the graphics used during the install. See README.images for info on what could/should be changed. anaconda-help This rpm contains the "help" info on the left side of the gui installer screen. You might want to change the "SL" to be your site name. cd ../base <modify "comps.xml.main" to include added RPMS and other site customizations, The one included here is the same as what is in SL itself, with sl-release changed to example-release> modify "scripts/comps.site.spec" Change the "example" entries at the beginning to be your site Also make sure that basedir is what your base directory really is sh scripts/cp.comps.xml.main.sh cd ../build/isolinux <modify files in "build/isolinux" as described in "build/isolinux/README" NOTE that this is <tree>/sites/$SITE/build/isolinux and NOT <tree>/isolinux/ > cd ../scripts <modify "locations.include" to fix TREE= and SITE= to be TREE=<where ever your tree is located> # In our case it is already ok. SITE=newsite change --product string in build.release.site.sh> modify rpmdb-example.spec.in < cp rpmdb-example.spec.in rpmdb-newsite.spec.in> < modify rpmdb-newsite.spec.in to have your newsite in it instead of example> sh make.updates.img.sh # Need to do whenever you change contents of # $TREE/sites/$SITE/RHupdates/ sh build.hdlist.site.sh # Run this whenever you change contents of # $TREE/sites/$SITE/Updates/ sh build.release.site.sh # Only need to run this when changing installer # kernel , but at least 1 time <now test install with images in "$TREE/sites/$SITE/images/"> while <not_right_yet> <add and remove RPMS in "$TREE/sites/$SITE/Updates" to customize as you want> <run $TREE/sites/$SITE/build/scripts/build.hdlist.site.sh after each batch of changes> <modify $TREE/sites/$SITE/base/comps.xml.main and run $TREE/sites/$SITE/base/scripts/cp.comps.xml.main.sh when you want to move these changes over as your "real comps.xml"> <test with install images in $TREE/sites/$SITE/images/, only need to rebuild these when installer kernel changes or anaconda rpms change and you want to include those changes Note that anaconda python script changes can be placed in $TREE/sites/$SITE/RHupdates/ , this makes testing easier, they do NOT have to be put in the anaconda rpms unless that is what you want> end <After you are happy. There are a few scripts that should be run that create a rpm that contain info about all the other rpms. This is why it should be done at the end. It does not hurt to run it more it just takes time.> cd $TREE/$ARCH/sites/newsite/build/scripts make.rpmdb-site.sh <I have also included a script to make cd isos. The created isos are placed in $TREE/$ARCH/sites/newsite/iso/ . Verify that you have at least 650MB x 4 disk space free there.> cd buildisoimages make.cdisos.sh <I have created a script that will build everything. It asks if you want to build install images and cd iso images. It calls all the other scripts and thus makes sure that all things have been built. It is located in $TREE/$ARCH/sites/newsite/build/scripts make.everything.sh > If you have any questions about this procedure please send me email. -Connie Sieh csieh@fnal.gov