Hi all, I had to customize the installer for the new redhat version (9). It seems thar Tony Nugent's howto have not been updated to 8.0 yet and Luigi Bitonti's has only been updated for 8.0 so here's a synthese of what I had to do. This is not very comprehensive, but if it can help someone get on its way, that'd be already something. If you want to build a binary only distro, you have to modify the splitdistro script so it will work even if there is no SRPMS directory. I have attached a patch I made against the original splitdistro. This setup assumes that you have a fully deployed redhat tree under an i386 folder in the current directory. To do that, you can just cp -a the content of each cd in this folder successively. It also assume that the anaconda runtime package is installed on the build machine. Once this is done, it is time to make the changes. This is the part not covered here, but they can include adding packages, doing updates, modifying the installer, etc. For modifications to packages (like the installer), what I do is I modify the SRPMS, regenerate the RPMS and put them back in the redhat tree. If you add rpms to the distribution or if you change the version for some package you must edit the comps.xml. Next, once the tree is in the state you want it, it is time to rebuild the isos. Here is the script I use (no SRPMS dir, 3 cds): #!/bin/bash # mkrhisos rm -fr i386-disc[123456] /usr/lib/anaconda-runtime/genhdlist `pwd`/i386 /usr/lib/anaconda-runtime/buildinstall --comp dist-9.0 --pkgorder `pwd`/pkgorder.txt --version 9.0 --product "Red Hat Linux" --release "Redhat 9.0 (Shrike)" `pwd`/i386 /usr/lib/anaconda-runtime/splitdistro --fileorder `pwd`/pkgorder.txt --release "Redhat 9.0 (Shrike)" `pwd` i386 /usr/lib/anaconda-runtime/genhdlist --fileorder `pwd`/pkgorder.txt --withnumbers `pwd`/i386-disc[1-3] cd i386-disc1/ mkisofs -r -J -T -v -V "Red Hat 9.0 (Shrike) disc 1" -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o ../i386-disc1.iso . for i in 2 3; do cd ../i386-disc${i}; mkisofs -r -J -T -v -V "Red Hat 9.0 (Shrike) disc ${i}" -o ../i386-disc${i}.iso .; done cd .. If all went well, the isos will be left in the current directory. -- Philippe Gendreau
1,2d0 < #!/usr/bin/python2.2 < 156,157c154,158 < print "error: %s is not a directory" % srcDir < sys.exit(1) --- > includeSRPMS = 0 > else: > includeSRPMS = 1 > # print "error: %s is not a directory" % srcDir > # sys.exit(1) 229,232c230,235 < print "first to move to disc2 is", disc2pkgs[0] < moveFiles("%s/RedHat/RPMS" % disc1Dir, < "%s/RedHat/RPMS" % disc2Dir, < disc2pkgs); --- > if (len(disc2pkgs) != 0): > print "first to move to disc2 is", disc2pkgs[0] > moveFiles("%s/RedHat/RPMS" % disc1Dir, > "%s/RedHat/RPMS" % disc2Dir, > disc2pkgs); > 244,247c247,252 < print "first to move to disc3 is", disc3pkgs[0] < moveFiles("%s/RedHat/RPMS" % disc2Dir, < "%s/RedHat/RPMS" % disc3Dir, < disc3pkgs); --- > if (len(disc3pkgs) != 0): > print "first to move to disc3 is", disc3pkgs[0] > moveFiles("%s/RedHat/RPMS" % disc2Dir, > "%s/RedHat/RPMS" % disc3Dir, > disc3pkgs); > 250,275c255,284 < print "Creating first source disc..." < stamp(disc1SrcDir, releasestr, "4", arch, startedAt, dirInfo) < os.system("cp -al %s %s" % (srcDir, disc1SrcDir)) < < print "Creating second source disc..." < stamp(disc2SrcDir, releasestr, "5", arch, startedAt, dirInfo) < < srcPkgList = os.listdir("%s/SRPMS" % disc1SrcDir) < srcPkgList.sort() < #srcPkgList.reverse() < disc2pkgs = excessFiles(srcDir, srcPkgList, < targetSize - fudgeFactor) < print "first src pkg to move to 2nd src cd is", disc2pkgs[0] < moveFiles("%s/SRPMS" % disc1SrcDir, < "%s/SRPMS" % disc2SrcDir, < disc2pkgs); < srcDisc1Size = spaceUsed(disc1SrcDir) < < print "Dropping remainder of sources on third disc..." < stamp(disc3SrcDir, releasestr, "6", arch, startedAt, dirInfo) < disc3pkgs = excessFiles(srcDir, srcPkgList, < srcDisc1Size + targetSize - fudgeFactor) < print "first src pkg to move to 3rd src cd is", disc3pkgs[0] < moveFiles("%s/SRPMS" % disc2SrcDir, < "%s/SRPMS" % disc3SrcDir, < disc3pkgs) --- > if includeSRPMS: > print "Creating first source disc..." > os.system("cp -al %s %s" % (srcDir, disc1SrcDir)) > > print "Creating second source disc..." > stamp(disc2SrcDir, releasestr, "4", arch, startedAt, dirInfo) > > srcPkgList = os.listdir("%s/SRPMS" % disc1SrcDir) > srcPkgList.sort() > srcPkgList.reverse() > disc2pkgs = excessFiles(srcDir, srcPkgList, > targetSize - disc3used - fudgeFactor) > if (len(disc2pkgs) != 0): > print "first src pkg to move to 2nd src cd is", disc2pkgs[0] > moveFiles("%s/SRPMS" % disc1SrcDir, > "%s/SRPMS" % disc2SrcDir, > disc2pkgs); > > srcDisc1Size = spaceUsed(disc1SrcDir) > > print "Dropping remainder of sources on third disc..." > stamp(disc3SrcDir, releasestr, "5", arch, startedAt, dirInfo) > disc3pkgs = excessFiles(srcDir, srcPkgList, > srcDisc1Size - disc3used + targetSize - fudgeFactor) > if (len(disc3pkgs) != 0): > print "first src pkg to move to 3rd src cd is", disc3pkgs[0] > moveFiles("%s/SRPMS" % disc2SrcDir, > "%s/SRPMS" % disc3SrcDir, > disc3pkgs) >