[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rh-9 custom cds (recipe)



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)
> 

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]