# $Id$ # # Main configuration file for project-builder.org # # # Define Operating systems # # # For the following keys osrelfile and osrelambfile: # The left member is the key that will be used overall as the OS name # The right member is the name of the file that has to be looked at to get OS info # # It should be noted that the list of all OS is the result of gathering # all the keys from osrelfile and osrelambfile # # # Those definitions are non-ambiguous (the file only exists for that OS) # # Tested # # Gentoo >= 1.6 osrelfile gentoo = /etc/gentoo-release # Slackware >= 10.2 osrelfile slackware = /etc/slackware-version # Mandriva >=2006.0 osrelfile mandriva = /etc/mandriva-release # Mandrake = 10.2 osrelfile mandrakelinux = /etc/mandrakelinux-release # Fedora >= 4 osrelfile fedora = /etc/fedora-release # VMWare >= 3 osrelfile vmware = /etc/vmware-release # SLES - Doesn't exist as of 10 osrelfile sles = /etc/sles-release # Asianux >= 2.2 osrelfile asianux = /etc/asianux-release # Solaris 10 osrelfile solaris = /etc/release # # Untested # osrelfile knoppix = /etc/knoppix_version osrelfile yellowdog = /etc/yellowdog-release osrelfile esmith = /etc/e-smith-release osrelfile turbolinux = /etc/turbolinux-release osrelfile blackcat = /etc/blackcat-release osrelfile aurox = /etc/aurox-release osrelfile annvix = /etc/annvix-release osrelfile cobalt = /etc/cobalt-release osrelfile redflag = /etc/redflag-release osrelfile ark = /etc/ark-release osrelfile pld = /etc/pld-release osrelfile nld = /etc/nld-release osrelfile lfs = /etc/lfs-release osrelfile mk = /etc/mk-release osrelfile conectiva = /etc/conectiva-release osrelfile immunix = /etc/immunix-release osrelfile tinysofa = /etc/tinysofa-release osrelfile trustix = /etc/trustix-release osrelfile adamantix = /etc/adamantix_version osrelfile yoper = /etc/yoper-release osrelfile arch = /etc/arch-release osrelfile libranet = /etc/libranet_version osrelfile valinux = /etc/va-release osrelfile yellowdog = /etc/yellowdog-release osrelfile ultrapenguin = /etc/ultrapenguin-release # # Here are the ambiguous file association # E.g. the file /etc/redhat-release is found on multiple distro such as redhat, rhel, centos, mandrake, vmware # # Mandrake <= 10.1 osrelambfile mandrake = /etc/mandrake-release # Debian >= 3.1 osrelambfile debian = /etc/debian_version # SuSE >= 10.0 osrelambfile suse = /etc/SuSE-release # RedHat >= 7.3 osrelambfile redhat = /etc/redhat-release # LSB osrelambfile lsb = /etc/lsb-release # # Here is the association between the key and all the OS usig the same file # The key mentioned here should be the same as the previous ones # osambiguous mandrake = mandrake,mandrakelinux osambiguous debian = debian,ubuntu osambiguous suse = suse,sles,opensuse osambiguous redhat = redhat,rhel,centos,mandrake,vmware osambiguous lsb = ubuntu,lsb # # The next key give the Regular Expression that is used when parsing the previous file # to find the version needed in it # osrelexpr gentoo = .* version (.+) osrelexpr slackware = S[^ ]* (.+)$ osrelexpr mandriva = Mandr[^ ]* [^ ]* release (.+) \( osrelexpr mandrake = Mandr[^ ]* release (.+) \( osrelexpr mandrakelinux = Mandrakelinux release (.+) \( osrelexpr fedora = Fedora .*release (\d+) \( osrelexpr vmware = VMware ESX Server (\d+) \( osrelexpr rhel = Red Hat (?:Enterprise Linux|Linux Advanced Server) .*release ([0-9.]+).* \( osrelexpr centos = .*CentOS .*release ([0-9]).* osrelexpr redhat = Red Hat Linux release (.+) \( osrelexpr sles = SUSE .* Enterprise Server (\d+) \( osrelexpr suse = SUSE LINUX (\d.+) \( osrelexpr opensuse = openSUSE (\d.+) \( osrelexpr asianux = Asianux (?:Server|release) ([0-9]).* \( osrelexpr lsb = .*[^Ubunt].*\nDISTRIB_RELEASE=(.+) osrelexpr ubuntu = .*Ubuntu.*\nDISTRIB_RELEASE=(.+) osrelexpr debian = (.+) osrelexpr solaris = Solaris (\d+) # Ganularity is the following: # # ostype # osfamily # os # os-ver # os-ver-arch # Group OS by family to handle common actions more easily (filtering, install command, ...) osfamily debian = du osfamily ubuntu = du osfamily gentoo = gen osfamily slackware = slack osfamily suse = novell osfamily opensuse = novell osfamily sles = novell osfamily redhat = rh osfamily rhel = rh osfamily fedora = rh osfamily vmware = rh osfamily asianux = rh osfamily centos = rh osfamily mandrake = md osfamily mandrakelinux = md osfamily mandriva = md osfamily freebsd = bsd osfamily solaris = sol osfamily unknown = unknown # Group family by build types ostype du = deb ostype slack = tgz ostype gen = ebuild ostype novell = rpm ostype rh = rpm ostype md = rpm ostype bsd = port ostype sol = pkg ostype unknown = unknown # From the most generic to the most specialized, in term of granularity, # give the command to use to install on the OS # If none is given, no install can takes place osupd du = sudo apt-get update ; sudo apt-get -y install osupd gen = sudo emerge osupd rpm = sudo yum clean all; sudo yum -y update ; sudo yum -y install osupd rhel-2.1 = sudo up2date -y osupd rhel-3 = sudo up2date -y osupd rhel-4 = sudo up2date -y osupd md = sudo urpmi.update -a ; sudo urpmi --auto osupd novell = export TERM=linux ; export PATH=\$PATH:/sbin:/usr/sbin ; sudo yast2 -i osupd unknown = unknown # From the most generic to the most specialized, in term of granularity, # give the suffix for the packages created # If none is given, the suffix will be a concatenation of # .osname and version # osname being as defined upper as the keys of osrelfile and osrelambfile ossuffix slackware = slack ossuffix asianux = asx ossuffix fedora = fc ossuffix vmware = vmw ossuffix mandrake = mdk ossuffix mandriva = mdv #ossuffix centos = el # For that OS no need to keep the version osnover gentoo = true # For that OS no need to keep the . in the version release osremovedotinver mandrake = true osremovedotinver redhat = true