Build Your Own Remix with Fedora

Build Your Own Remix

 * Return to Sugar Creation Kit
 * Fedora only

'''CAUTION: DO NOT TRY DOING THIS FROM A SOAS USB STICK. A MINIMUM OF 8GB IS REQUIRED TO BUILD A CUSTOM-REMIX.ISO'''
 * A 8GB USB is a minimum requirement.
 * It is usually Cheaper to buy a 120GB or larger external USB Hard Drive and install fedora on it.

 THIS SHOULD BE LOOKED AT FIRST:http://download.sugarlabs.org/soas/docs/customization-guide
 * NOTE: this content should be used to enhance above link - 08/02/2010 satellit

NOTE: also look at SugarClone:
 * (SugarClone duplicates a customized live USB to 2nd USB.)

Sugar Clone, Sugar on a Stick/Sugar Clone, is a short-cut method to customize a SoaS installation that works with a single-word command. It would probably serve the targeted-project, special-focus case.

livemedia-creator

 * Newer method in f22-23
 * https://jbwillia.wordpress.com/2014/10/29/how-to-build-updated-fedora-live-iso-for-yourself/


 * Older post
 * https://www.brianlane.com/creating-live-isos-with-livemedia-creator.html

Fedora Remix Info

 * https://fedoraproject.org/wiki/Remix

"A Fedora Remix is a combination of Fedora software, with or without third-party software, that any community member can create at any time..."  The following is Modified/Adapted from: https://fedoraproject.org/wiki/Talk:How_to_create_and_use_a_Live_CD FedoraQA Creating_a_Test_Day_Live_Image: https://fedoraproject.org/wiki/QA/Test_Days/Live_Image#Creating_a_Test_Day_Live_Image
 * Important Info and links
 * AND
 * Other Important links:
 * 3/11/2014
 * https://fedoraproject.org/wiki/How_to_create_and_use_a_Live_CD?rd=How_to_create_and_use_Fedora_Live_CD
 * https://fedoraproject.org/wiki/How_to_create_a_Fedora_install_ISO_for_testing?rd=How_to_build_a_Rawhide_ISO_image_for_testing#Build_a_boot.iso

Introduction

 * Complete Reference on Fedora Anaconda Kickstart


 * Fedora 18 is shifting to using Anaconda with kickstart files
 * Notes on f18 Customization of installs using Anaconda and kickstart files: Fedora

This page explains how to make a custom-content Remix of Live CD or DVD on Fedora-based systems including derived  distributions such as RHEL, CentOS and others.


 * NOTE THAT THESE REMIXES ARE NOT SUPPORTED BY FEDORA


 * You may find some volunteer support on IRC freenode #sugar however.
 * click on this link to join #sugar on IRC Chat

If you simply want to burn a pre-made ISO to a disc, visit http://fedoraproject.org/en/get-fedora to download a LiveCD or LiveDVD,  then see the install guide or burning how-to for further  instructions.

Instructions

 * Fedora Spins_Process

The basic workflow for creating a remix is:


 * 1)  Create / Modify a kickstart file that specifies the packages you want installed  on your remix, along with special settings you want to tweak.
 * 2)  Run that  kickstart file through livecd-creator, which will pull in the  packages  and compose an .iso, which you can then burn to CD.

...that's it! We will walk you through these steps below.

Install the necessary software
To create a live image, the livecd-creator tool is used. Super user privileges are needed. The tool is more or less self-documenting, use the --help option to see options.

The livecd-creator tool is part of the  package. If it is not installed on your system, add it with:

su -c 'yum install livecd-tools spin-kickstarts'


 * https://git.fedorahosted.org/git/spin-kickstarts.git
 * latest spin.ks files

If you are interested in localized live cd files, install also l10n-kickstarts.

su -c 'yum install l10n-kickstarts'

Note the spin-kickstart files that download are specific for the version of fedora you are using
 * The version of sugar will also be different for each version of fedora:
 * f12 0.86.-
 * f13 0.88.-
 * f14 0.90.-
 * f15 0.92.-
 * f16 0.94.-
 * f17 0.96.-
 * f18 0.98.-
 * f19 0.98.7-
 * f20 0.99. -
 * f21 0.102.x -

Set up your environment
Now we'll set up the place you'll be building your remix's image file in. We assume you're running a recent version of Fedora.
 * We will use the /home/(user*)/ directory to do our builds
 * Note: If you use the Kickstart files in the default installed location in /usr/share/spin-kickstarts you will have permission problems editing the files.


 * Set SELinux in permissive mode:
 * Remix build will fail if this is not done

su -c ‘setenforce 0’
 * Copy the kickstart files you've Downloaded to a new spin-kickstarts directory:
 * As noted above; copying changes the file permissions so it is easier to use them.


 * (user*)= your user name

mkdir /home/(user*)/spin-kickstarts cp /usr/share/spin-kickstarts/*.ks /home/(user*)/spin-kickstarts/ cd /home/(user*)/spin-kickstarts/
 * In terminal $:

ksflatten
KSFLATTEN(1)                          General Commands Manual                          KSFLATTEN(1)
 * program to convert kickstart files into one file

NAME ksflatten — flatten a kickstart file

SYNOPSIS ksflatten [-c | --config INFILE] [-o | --output OUTFILE]  [-v | --version VERSION]

DESCRIPTION ksflatten is a program that takes an input kickstart file potentially containing includes and generates an output file with all the includes inlined.

EXIT STATUS ksflatten returns 0 on success, and 1 if INFILE does not exist or there is an error  parsing the kickstart file.

OPTIONS -c, --config INFILE The name of the input kickstart file.

-o, --output OUTFILE Write the flattened kickstart file to OUTFILE, or stdout if no filename is given.

-v, --version VERSION

Examples
ksflatten -v, --config fedora-livecd-soas.ks -o flat-fedora-livecd-soas.ks --version F21
 * 1) /Downloads/spin-kickstarts

git spin-kickstarts

 * Updated 11/09/2014
 * https://git.fedorahosted.org/cgit/spin-kickstarts.git/
 * https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/?h=f21
 * Recommended for most up to date xxx.ks
 * Latest spin-kickstarts used for composes of live cd's


 * Downloaded spin-kickstarts usually are not up to date.


 * These are more up to date kickstart files-(used for builds)
 * Index: http://git.fedorahosted.org/cgit/spin-kickstarts.git/
 * Unzip latest file
 * Use these kick-start files as shown in the above example.
 * Be sure to not mix them with the files we added to /spin-kickstarts


 * Suggest copying them to /home/(user)*/ to keep them apart.


 * Edit one of these .ks files with the gedit Text Editor
 * see (section below for details of what you can do)

Masher .ks files

 * use the flattened (one file) .ks file for the latest koji builds:
 * http://koji.fedoraproject.org/koji/tasks?start=0&state=all&view=flat&method=createLiveCD&order=-id
 * Click on the green (successful) build listed on this page and download the xxxx.ks listed below the xxxx.iso link
 * Save this to /home/(user)/spin-kickstarts/
 * Link to this after you adjust the xxx.ks for your needs (see below)

Add a xxx.ks file in Anaconda
"This test will verify that anaconda can load a kickstart file from a file:// path. This is a typical case for when the kickstart file is located in the initrd.img."

Example Terminal Command to Build .iso
You must be connected to a fast Internet connection for this to work


 * In root terminal:

livecd-creator \ --config=/home/(user)/spin-kickstarts/fedora-livecd-soas.ks \ --fslabel=Soas-v(2-11)-Remix-mmddyr --cache=/var/cache/live --verbose


 * KEY
 * --fslabel=Soas-v(2-11)-Remix-mmddyr = (The name you specify for the CD remix)


 * Explanation of format for name: (preliminary layout pending approval by Soas)
 * v(2-11)= the sugar version
 * v2= Fedora 12 sugar 0.86-
 * v3= Fedora 13 sugar 0.88-
 * v4= Fedora 14 sugar 0.89-0.90
 * v5= Fedora 15 sugar 0.92
 * v6= Fedora 16 sugar 0.94.x
 * v7= Fedora 17 sugar 0.95.x
 * v8= Fedora 18 sugar 0.98.x
 * v10=Fedora 20 sugar 0.99.x
 * v11=Fedora 21 sugar 0102.x
 * mmddyr= The Creation Date
 * Remix is REQUIRED for naming if Soas is used


 * --config=/home/(user*)/spin-kickstarts/ * (path to your spin-kickstarts folder and .ks file)
 * the flattened .ks files from koji are preferred kickstarts to use:
 * http://koji.fedoraproject.org/koji/tasks?start=0&state=all&view=flat&method=createLiveCD&order=-id

Create/Modify the kickstart file

 * 1) Open the kickstart file you chose from the spin-kickstart folder you copied to your Desktop in the editor of your choice.:
 * 2) Create the package manifest section  and add your favorite packages:

%packages %end %post %end
 * 1) %include spin-kickstarts/(your).ks  (See :)
 * 1) redefine repo to some local mirror (See below and :)
 * 1) provide list of packages (normal, wildcarded, @comps) to be added or removed - dependencies are handled
 * 2) packageYouWant
 * 3) wildcardedPackagesYouWant*
 * 4) @CompYouWant
 * 5) -packageYouDontWant
 * 1) put any shell commands here

More Information and Examples of Usage
repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-12&arch=$basearch repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f12&arch=$basearch
 * In the worst case you can base the whole livecd on Fedora 12 packages with this definition:
 * 1) not really rawhide, overriden with F12 'released' repo


 * %packages
 * Add and or remove programs
 * Any Program with a minus sign (-) will be removed; any program without a minus will be added


 * %post
 * Manipulate files that have been installed
 * %post command are done in cheroot (the commands are only run against the new file system created for the live CD)
 * EXAMPLE


 * edit the boot parameters
 * delete "quiet" and "rhgb" 

%post --nochroot sed -i -e '/ *append / { s/quiet// ; s/rhgb//; }'  "${LIVE_ROOT}"/isolinux/isolinux.cfg
 * EXAMPLE

%post cat >> /home/liveuser/.xscreensaver << FOE lock:	False FOE
 * disable screensaver locking
 * 1) disable screensaver locking
 * EXAMPLE

just delete "quiet" and "rhgb" there at boot time. None of the above is livecd specific.
 * Isolinux and most other bootloaders let you edit the boot parameters;

If you want to make this the default on images you build then just add the following line in the %post --nochroot section: sed -i -e '/ *append / { s/quiet// ; s/rhgb//; }'  "${LIVE_ROOT}"/isolinux/isolinux.cfg
 * The SED Command
 * http://www.grymoire.com/Unix/Sed.html


 * EXAMPLE

%post --nochroot WD=$PWD CACHE_DIR=$WD/../cache/books CONTENT_DIR=$INSTALL_ROOT/home/liveuser/Desktop/books mkdir -p $CACHE_DIR mkdir -p $CONTENT_DIR cd $CONTENT_DIR PDF="$PDF http://people.sugarlabs.org/Tgillard/ReadMeFirst-How-to-build-a-remix.pdf" PDF="$PDF http://wiki.sugarlabs.org/go/Sugar_Creation_Kit" PDF="$PDF http://people.sugarlabs.org/sdz/ForwardPages5-6.pdf" PDF="$PDF http://people.sugarlabs.org/sdz/Sugar_on_a_Stick-3-Creation_Kit-en-US.pdf" PDF="$PDF http://people.sugarlabs.org/sdz/Sugar_on_a_Stick-3-Customization_Guide-en-US.pdf" PDF="$PDF http://en.flossmanuals.net/ActivitiesGuideSugar/FM_25Apr10.pdf" PDF="$PDF http://en.flossmanuals.net/Sugar/FM_Sugar_28Oct08.pdf" for pdf in $PDF ; do remote_file=$(basename $(curl -4 -s -L -w %{url_effective} -I $pdf | tail -1)) file=$CACHE_DIR/$remote_file if [ ! -f $file ] ; then curl -s -4 -L $pdf > $file fi cp -p $file $CONTENT_DIR done %end
 * Include Documents in Books directory
 * 1) Mel's Example starts  (thanks to Mel Chua)
 * 2) pull and include sample content


 * To change repository: (eg: enable rawhide)
 * Edit the fedora-live-mini.ks
 * Put # in front of repos you do not want to use
 * (remove # )from The repos you want to use
 * EXAMPLE: repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch


 * Good example of a very complicated remix-Maintained by the Fusion Linux
 * EXAMPLE Desktop with customizations to fit in a CD sized image

How to add autostart apps to your Fedora Remix
Posted on February 7, 2012 by valent | Leave a comment http://fusionlinux.org/2012/02/07/how-to-add-autostart-apps-to-your-fedora-remix/ If you want to add autostart apps to your Fedora remix there is one quick and easy way to do it. Open your kickstart file and find section that starts with “%post”. Any command that you issue in %post section run with root privileges in build environment before iso image is created. Any application that you add to ~/.config/autostart folder start up in GNOME 3 when user logs on. To make this system wide you need to put your application shortcuts in /etc/skel/.config/autostart directory so here is one example how your kickstart could look like: mkdir -p /etc/skel/.config/autostart cp /usr/share/applications/synapse.desktop /etc/skel/.config/autostart/ Now you can add any app that you want to start every time users log on.
 * 1) add synapse to autostart directory


 * Congrats -- you're done!

Build the image
su # cd Desktop
 * The build process will take some time, as well as space and bandwidth.
 * copy paste the commands to a root terminal:
 * In terminal /home/(user)/Desktop:
 * (This is an Example do not use)

livecd-creator \ --config=/home/(user)/Desktop/spin-kickstarts/fedora-livecd-soas.ks \ --fslabel=Soas-v(2-3-4-5-6)-yearmmdd-Remix --cache=/var/cache/live --verbose


 * Success is indicated by message:
 * "Setting supported flag to 0"
 * your new remix CD.iso is located in your Desktop Folder.

Credits
 * Parts of this page were based on Rahul Sundaram's article Roll Out A Fedora Remix. And the References listed below:

Build your own Remix with git

 * Build Your Own Remix with Fedora with git
 * test Digest, Vol 97, Issue 3 Comment (by adamwill)
 * I can build live images if needed. Actually, you probably could too, it's actually very simple to do. You basically just need a git checkout of spin-kickstarts:

Using the Anaconda Kickstart file

 * Modify the Anaconda Installer Kickstart file for a Customized install
 * An alternative approach


 * Sugar on a Stick/Customization
 * http://fedoraproject.org/wiki/Anaconda/Kickstart

Older Anaconda Kickstart Links

 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/index.html
 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-howuse.html
 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-file.html
 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-options.html
 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-packageselection.html
 * http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-postinstallconfig.html

Fedora

 * http://mirrors.ibiblio.org/pub/mirrors/sugar/soas/docs/customization-guide/index.html
 * https://fedoraproject.org/wiki/Talk:How_to_create_and_use_a_Live_CD
 * https://fedoraproject.org/wiki/How_to_create_and_use_a_Live_CD
 * http://www.linuxforu.com/how-to/roll-out-a-fedora-remix/
 * http://www.ibm.com/developerworks/linux/library/l-fedora-livecd/
 * http://www.ibm.com/developerworks/linux/library/l-fedora-livecd/index.html
 * http://forums.fedoraforum.org/showthread.php?t=231281
 * http://fedoraproject.org/wiki/FedoraLiveCD
 * http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo#How_to_Make_a_bootable_USB_Drive_to_Install_Fedora_instead_of_using_a_physical_DVD
 * http://spins.fedoraunity.org/team-documentation/composing-spins/doing-the-work

spin-kickstarts.git

 * http://git.fedorahosted.org/git/?p=spin-kickstarts.git;a=tree;hb=HEAD

Dextrose XO-1 & XO-1.5

 * Dextrose/Building

Licensing

 * http://fedoraproject.org/wiki/Licensing
 * http://opensource.org/licenses/lgpl-license
 * How to label the license for your VirtualBox exports and Remixed .iso's

Using KIWI with openSUSE to Customize

 * http://en.opensuse.org/SDB:KIWI_Cookbook_Live_USB-Stick

Customizing-Trisquel

 * Customizing-Trisquel

DebianCustomCD

 * Debian-Custom-CD

Mandriva Custom CD

 * Draklive:Mandriva Custom-CD
 * pclinuxos: http://www.pclinuxos.com/forum/index.php/board,3.0.html

Notes/Links
http://marcopg.org/2011/06/12/html-activities/

Building Boot Images

 * (Very Advanced)
 * http://66.35.62.162/wiki/Install_and_configure_AutoQA