Creating Re-Spins with Revisor
An article on how to create Re-Spins with Revisor
Creating Re-Spins with Revisor
Historically, the Fedora Unity Project has regularly released so-called Re-Spins, installation media based on a release of Fedora by the Fedora Project, with all updates included and the installer rebuilt. The Re-Spin thus contains an installable set of packages being as up-to-date as humanly possible.
For Fedora Unity, creating, testing and distributing such Re-Spins have been a rewarding task, but as we looked around and talked to people it seemed everyone had his own way of customizing installation media and thus also creating Re-Spins. With Revisor (and this document), you can create Re-Spins yourself, the exact same way we do.
Installing Revisor
As we speak (August 1 2007), we have just enabled creating respins and are testing the results. Changes regarding being able to do re-spins have not been released in a package you can 'yum install', yet. This means that if you want to create Re-Spins yourself, you'll need to pull the latest and greatest code from the Revisor Source Repository, and either run Revisor directly from the source, or build an RPM, install it, configure Revisor and then run Revisor.
Sometimes, running from source is just easier. Having had a session with Robert 'Bob' Jensen last night, me fixing errors and bugs, and him running Revisor all the time and getting the errors, you certainly appreciate him being able to just 'git pull' the latest source and not having to rebuild RPMs, uninstall, reinstall, (re)configure all the time.
However, you make that choice. Both methods are described in 'Building Revisor from Source'. If you find you have any trouble, let us know on the mailing list.
Configuring Revisor
In order to have Revisor build you a Re-Spin, you'll need to configure Revisor, so prepare to dig in some configuration files. I'll first explain how to edit the configuration settings when you installed an RPM.
Edit /etc/revisor/revisor.conf and in the '[revisor]' section, set:
dependency_resolve_allow_conflicts=1 mode_respin=1
Then, if you find a model that you would like to re-spin, edit the 'main' configuration file (not the directive, but the actual file it points to). Say you choose 'f7-i386' as a model, and you start editing /etc/revisor/conf.d/revisor-f7-i386.conf.
NOTE: Part of what we describe here is what we think is necessary to release a re-spin at this point in time (August 1st 2007). This means some of this doesn't apply to while you're reading this document and the state of certain packages and repositories, since they may have changed. Nonetheless, we'll try and update this document as regularly as possible.
Edit the 'updates' repository to:
exclude=yum yum-updatesd kernel* ctapi-cyberjack
Edit the 'updates-testing' repository to have:
includepkgs=kernel* enabled=1 exclude=yum yum-updatesd ctapi-cyberjack
You should be able to create a Re-Spin now. For example, use this command line:
$ sudo ./revisor.py --cli --respin --yes --model f7-i386 \ --kickstart /etc/revisor/conf.d/fedora-7-gold.cfg \ --install-cd --install-dvd
Example configuration files can be found at: http://git.kanarip.com/?p=unityspin/.git
When Running Revisor Directly From Source
When running Revisor directly from source you get to copy the configuration files so changes don't get tracked by GIT, and you can still 'git pull' the latest code at any time. You should copy all files you need to edit.
Clone Revisor:
~$ git clone git://fedorahosted.org/git/revisor [...output truncated...] ~$ cd revisor
Now, to be able to run Revisor from the source tree, you'll need to link /etc/revisor and /usr/share/revisor to the correct location in the source tree. Below is an example command, for a user kanarip having /home/kanarip/revisor as the source directory:
revisor$ sudo ln -s /home/kanarip/revisor/conf /etc/revisor revisor$ sudo ln -s /home/kanarip/revisor/glade /usr/share/revisor
In order to enable you to just 'git pull' in the latest code directly from the source repository upstream, you'll need to prevent the configuration files from being edited. If you edit the configuration files in the source tree, the source control management system will see the changes and not update from what is in the upstream source repository, leaving you with an old tree. You wouldn't want that because if you do, you should just build and install the RPM. Ergo: Copy the original configuration files to other files and use those other files.
revisor$ for file in `find . -name "*.conf"`; do cp ${file} ${file}.new; done
Now, edit only the .conf.new files.
Edit conf/revisor.conf.new and in the '[revisor]' section, set:
dependency_resolve_allow_conflicts=1 mode_respin=1
Then, if you find a model that you would like to re-spin, edit the 'main' configuration file directive to point to the .conf.new file. Say you choose 'f7-i386' as a model, and you edit main to have /etc/revisor/conf.d/revisor-f7-i386.conf.new (this was symlinked to the source tree), and start editing that file.
NOTE: Part of what we describe here is what we think is necessary to release a re-spin at this point in time (August 1st 2007). This means some of this doesn't apply to while you're reading this document and the state of certain packages and repositories, since they may have changed. Nonetheless, we'll try and update this document as regularly as possible.
Edit the 'updates' repository to:
exclude=yum yum-updatesd kernel* ctapi-cyberjack
Edit the 'updates-testing' repository to have:
includepkgs=kernel* enabled=1 exclude=yum yum-updatesd ctapi-cyberjack
You should be able to create a Re-Spin now. For example, use this command line:
$ sudo ./revisor.py --cli --respin --yes --model f7-i386 --config conf/revisor.conf.new \ --kickstart /etc/revisor/conf.d/fedora-7-gold.cfg --install-cd --install-dvd
Example configuration files can be found at: http://git.kanarip.com/?p=unityspin/.git

