Customizing Fedora 4

Written by Michael Larabel in Operating Systems on 17 December 2005 at 01:00 PM EST. Page 1 of 5. Add A Comment.

Although Red Hat sticks by a six to twelve month release cycle for its Fedora Core Project the number of FOSS advancements made in that short period is simply staggering. With the huge number of updates that roll out for Fedora is simply jaw dropping as since Fedora Core 4's release earlier this year there has been a staggering amount of updates from SELinux to ALSA. In fact right now on their FTP server alone is over 839 RPM updates for a single architecture. With the number of Fedora fresh installs we perform on a weekly basis using all sorts of hardware, and with Fedora Core 5 not being scheduled for release until at least February of 2006, we have begun to work on optimizing the FC4 build to provide for local install CDs that are up-to-date when it comes to all of the packages as well as including some Fedora extras in the stock install and Phoronix additions. Although the fundamentals for re-mastering the CD and simply changing around packages and modifying a file here and there are relatively easy, this project would not be recommended for the novice GNU/Linux user. We will keep this guide short and sweet, and not provide all of the standard steps that are needed, simply providing the guidelines for customizing the Fedora Core 4 install as they have changed slightly since previous Fedora Core revisions and even the old versions of Red Hat. For reference, the root build tree was /home/phoronix/Desktop/stage. Below are the various steps and on the following page is the package list we used for the newly created Fedora CDs. As always, proceed at your own risk, as many of these commands need to be executed as a super-user.

mount -o loop FC4-i386-disc1.iso /home/phoronix/scratch/; cd /home/phoronix/scratch/; tar -cf - * |(cd /home/phoronix/Desktop/stage/i386/; tar -xpf -); cd /home/phoronix/Desktop/stage/isos/; umount /home/phoronix/scratch/
mount -o loop FC4-i386-disc2.iso /home/phoronix/scratch/; cd /home/phoronix/scratch/; tar -cf - * |(cd /home/phoronix/Desktop/stage/i386/; tar -xpf -); cd /home/phoronix/Desktop/stage/isos/; umount /home/phoronix/scratch/
mount -o loop FC4-i386-disc3.iso /home/phoronix/scratch/; cd /home/phoronix/scratch/; tar -cf - * |(cd /home/phoronix/Desktop/stage/i386/; tar -xpf -); cd /home/phoronix/Desktop/stage/isos/; umount /home/phoronix/scratch/
mount -o loop FC4-i386-disc4.iso /home/phoronix/scratch/; cd /home/phoronix/scratch/; tar -cf - * |(cd /home/phoronix/Desktop/stage/i386/; tar -xpf -); cd /home/phoronix/Desktop/stage/isos/; umount /home/phoronix/scratch/

(APPLY RPM UPDATES INTO i386/Fedora/RPMS folder and making sure to remove the previous packages. In addition, third party RPMs can be placed here that are compatible with Fedora Core 4.)

cd /usr/lib/anaconda-runtime/
cp * /home/phoronix/Desktop/stage/
cd /usr/lib/anaconda/
cp * /home/phoronix/Desktop/stage/
cd /home/phoronix/Desktop/stage/

./genhdlist --productpath Fedora /home/phoronix/Desktop/stage/i386/

./pkgorder /home/phoronix/Desktop/stage/i386 i386 Fedora | tee /home/phoronix/Desktop/stage/pkgfile.txt

./buildinstall --comp phoronix --pkgorder /home/phoronix/Desktop/stage/pkgfile.txt --version 4 --product "Fedora" --release "Fedora Core 4" --prodpath Fedora /home/phoronix/Desktop/stage/i386/

./splittree.py --arch=i386 --total-discs=4 --bin-discs=4 --src-discs=0 --release-string="Fedora Core 4 Stentz - Phoronix Modified" --pkgorderfile=/home/phoronix/Desktop/stage/pkgfile.txt --distdir=/home/phoronix/Desktop/stage/i386 --srcdir=/home/phoronix/Desktop/stage/sr --productpath=Fedora

 

#!/bin/sh

mkisofs -R -J -T -no-emul-boot -boot-load-size 4 -boot-info-table \
-V "Fedora Core 4 (Stentz) Disk 1" \
-A "Fedora Coret 4 Modified" \
-P Phoronix \
-p Phoronix \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-o FC4-i386-disc1.iso \
i386-disc1

for i in 2 3 4 ; do
mkisofs -R -J -T \
-V "Fedora Core 4 (Stentz) Disk $i" \
-A "Fedora Coret 4 Modified" \
-P Phoronix \
-p Phoronix \
-o FC4-i386-disc${i}.iso \
i386-disc${i}
done

Through re-mastering the CD, additional packages can be implemented, such as those from the Fedora Extras repository, or to simply provide updated packages on the install CDs such as the latest kernel and GNOME release. In addition, many other modifications can be done as well as tweaks to Anaconda through their various Python scripts. Although our build was for i386, the same process can be applied to any architecture from x86_64 to Power PC. For reference, on the following pages is our pkgfile.txt output to see the various packages we have updated as well as changed. When it comes down to re-mastering/customizing any Linux distribution, the possibilities are simply endless.


Related Articles