Product SiteDocumentation Site

Chapter 14. Development

14.1. Running Revisor from Source
14.1.1. Installing the Required Packages
14.2. Building Revisor Packages
14.3. Tickets
14.4. Adding a new spin or remix
14.5. Versioning Schema
14.6. Release Procedure
This chapter sheds some light on development of Revisor, such as different branches and maintenance policies, versioning schemas, etcetera.
This part of the documentation relies on whether you have sudo set up properly. If you have not, you're on your own.

14.1. Running Revisor from Source

The latest code in GIT can be built into a RPM you can install but one of the advantages of having the complete source tree is that you can run it directly from that source tree so that when you pull in the next updates you do not have to rebuild the RPM. Note that we do not bump the version number for every little change we make, and as such the RPM built does not allow you to use rpm -Uvh or rpm -Uvh --oldpackage. Of course, Revisor's Makefiles also allow make install, but that leaves a number of unmanaged files on your computer you would have to track down manually in order to remove Revisor completely.

Cannot have Revisor RPMs installed

When running revisor from within the source tree, you cannot have any of the Revisor packages installed. Having Revisor RPM packages installed regardless will mess up the GIT repository or source tree.
To run Revisor from within the source tree, checkout the master branch, and run the ./switchhere script:
$ ./switchhere
The ./switchhere script does the following:
  • Symlink /etc/revisor/ to $PWD/conf/ so that /etc/revisor/revisor.conf, the primary configuration file, and /etc/revisor/conf.d/, the configuration directory, are valid (the symlink causes the actual file and directory to be found in $PWD/conf/)
  • Create the /usr/share/revisor/ directory so that a couple of symlinks can be created from within that directory:
  • In Revisor 2.1.0 (development version in branch master), this includes:
    • /usr/share/revisor/ui => $PWD/revisor/modgui/glade/
    • /usr/share/revisor/pixmaps => $PWD/revisor/modgui/glade/pixmaps/
    • /usr/share/revisor/comps => $PWD/conf/
  • In Revisor 2.0.5 (branch F-7, F-8 or EL-5), this includes:
    • /usr/share/revisor/ui => $PWD/glade/
    • /usr/share/revisor/pixmaps => $PWD/glade/pixmaps/
    • /usr/share/revisor/comps => $PWD/conf/
  • In Revisor 2.1.0, also create symlinks from within the appropriate /usr/share/man/man$x/ directories to the source for these man pages in $PWD/doc/.
From this moment on, you should be able to run:
$ ./revisor.py

Root privileges required

Note that revisor needs root privileges to run, and that you'll need to sudo or su-c to gain those. Use here whatever you find the most convenient; Revisor though should have a nice error message when run without those privileges.

14.1.1. Installing the Required Packages

To be able to run Revisor from within the source tree, you'll need to install the required packages for each component, of course.
To get a current list of those packages, use:
$ rpmquery --specfile --qf="%{REQUIRES}\n" revisor.spec | sort | uniq | xargs -n 1 repoquery --requires --alldeps --resolve