{section: Background } In a cluster, Condor binaries and configuration files are placed on the head node. Worker nodes access these files via shared file system. Thus, drone rpm is designed to install on these worker nodes. {section: Design } 1: The head node will install Condor by using normal RPM with relocate option. 2: The worker node will install drone rpm which is basically a bunch of scripts that will start Condor from shared file system. 3: Condor_master_wrapper is a python script that act like a master but it will copy the master binary to local file system before starting it. It will also update the master if there is change in the share folder. 4: Profile.d script is provided so that necessary environment variables are set (PATH, CONDOR_CONFIG). Manpath is not set because man will be able to find manpages by itself. {section: Implementation } {subsection: RPM Installation Behavior } {subsubsection: pre (pre-install) } 1: Add 'condor' user/group if not exists {subsubsection: postinst } 1: Add Condor service (chkconfig --add) {subsubsection: preun } 1: Call init script to stop Condor only if we are removing the last instance of Condor (not include upgrading). If the init script fails, abort the uninstall 2: Remove Condor service (chkconfig --del) {subsubsection: postun } 1: Do nothing {section: Package Building } {subsection: Related Files } |*File* |*Description*| |src/condor_scripts/native/SPECS/condor-minimal.spec |Spec file| |src/condor_scripts/make_native_packages.pl |Main script| |src/condor_examples/condor.boot.vdt |Used for /etc/init.d/condor| |src/condor_examples/condor.sh |/etc/profile.d/condor.sh| |src/condor_examples/condor.csh |/etc/profile.d/condor.csh| |src/condor_examples/condor.sysconfig |Template for sysconfig file| |src/condor_examples/condor.sysconfig.drone.patch |Patch for default parameters in Drone RPM| {subsection: Build Process } After creating normal RPM, make_native_packages.pl will populate the build area with files required for building drone rpm. Then it will invoke rpmbuild to create the package.