# $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, and the values of osrelambfile # # # The following conf info are for pb_distro_get (man ProjectBuilder::Distribution) # # 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+) # # The following conf info are for pb_distro_init (man ProjectBuilder::Distribution) # # 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, ...) # Key is osname, Value is osfamily 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 # Group family by build types # Key is osfamily, Value is build type ostype du = deb ostype slack = tgz ostype gen = ebuild ostype novell = rpm ostype rh = rpm ostype md = rpm ostype bsd = port ostype sol = pkg # 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 # key depends on granularity, value is install command # Chaining the commands allow to only test for what is able to be installed, # not the update of the repo which may well be unaccessible if too old 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 sol = sudo pkgadd -d # 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 # depends on granularity, value is install command 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 # Key depends on granularity, value is boolean osnover gentoo = true # For that OS no need to keep the . in the version release # Key depends on granularity, value is boolean osremovedotinver mandrake = true osremovedotinver redhat = true # pb install dependencies per distro # osperldep gives perl file dependecies to get from CPAN # ospkgdep gives distribution package dependencies # # Asianux - Module-Build first for processing as neede by others osperldep asianux = Module-Build,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep asianux = wget,make,perl-Date-Manip,perl-ExtUtils-MakeMaker,rpm-build,patch,ntp # Fedora - Module-Build first for processing as neede by others osperldep fedora-4 = Module-Build,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep fedora-4 = wget,make,perl-Date-Manip,perl-ExtUtils-MakeMaker,rpm-build,patch,ntp osperldep fedora = ospkgdep fedora = wget,make,perl-Date-Manip,perl-ExtUtils-MakeMaker,rpm-build,patch,ntp,perl-File-MimeInfo,perl-Mail-Sendmail # Slack - Module-Build first for processing as neede by others osperldep tgz = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep tgz = wget,make,ntp,patch # Old RedHat - Module-Build first for processing as neede by others osperldep redhat = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep redhat = wget,make,ntp,patch # Old SuSE - Module-Build first for processing as neede by others osperldep opensuse-10.0 = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep opensuse-10.0 = wget,make,ntp,patch osperldep opensuse-10.1 = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep opensuse-10.1 = wget,make,ntp,patch osperldep suse = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail ospkgdep suse = wget,make,ntp,patch # New OpenSuSE - Module-Build first for processing as neede by others ospkgdep opensuse-10.2 = wget,make,ntp,patch ospkgdep opensuse-10.3 = wget,make,ntp,patch osperldep opensuse = Module-Build,File-MimeInfo,File-BaseDir ospkgdep opensuse = wget,make,sntp,patch,perl-Date-Manip,perl-File-HomeDir,perl-Mail-Sendmail # Mdv osperldep mandrake-10.1 = Date-Manip ospkgdep mandrake-10.1 = rpm-build,wget,patch,make,ntp-client,perl-File-MimeInfo,perl-Mail-Sendmail osperldep md = ospkgdep md = rpm-build,wget,patch,make,ntp-client,perl-File-MimeInfo,perl-Mail-Sendmail,perl-Date-Manip # Debian osperldep debian-3.1 = File-MimeInfo,File-BaseDir ospkgdep debian-3.1 = wget,patch,dpkg-dev,make,debian-builder,dh-make,fakeroot,ntpdate,libmodule-build-perl,libdate-manip-perl,libmail-sendmail-perl osperldep deb = ospkgdep deb = wget,patch,dpkg-dev,make,debian-builder,dh-make,fakeroot,ntpdate,libfile-mimeinfo-perl,libmodule-build-perl,libdate-manip-perl,libmail-sendmail-perl # Gentoo osperldep gen = ospkgdep gen = wget,ntp,make,patch,DateManip,File-MimeInfo,Mail-Sendmail # Solaris - Module-Build first for processing as neede by others osperldep pkg = Module-Build,Date-Manip,File-MimeInfo,File-BaseDir,Mail-Sendmail # Should be installaed manually first for the moment ospkgdep pkg = wget,make # Version of the perl module as found on CPAN # http://search.cpan.org/CPAN/modules/by-module osperlver Date-Manip = 5.54 osperlver Module-Build = 0.2808 osperlver File-MimeInfo = 0.15 osperlver File-BaseDir = 0.03 osperlver Mail-Sendmail = 0.79