source: ProjectBuilder/devel/pb/lib/distro.pm@ 13

Last change on this file since 13 was 13, checked in by Bruno Cornec, 17 years ago

Deal with rpm build process

  • Property svn:executable set to *
File size: 1.7 KB
Line 
1#!/usr/bin/perl -w
2#
3# Creates common environment for distributions
4#
5# $Id$
6#
7
8require Exporter;
9@ISA = qw(Exporter);
10@EXPORT = qw(distro_init distro_get);
11
12use strict;
13
14sub distro_init {
15
16my $ddir = shift;
17my $dver = shift;
18my $dfam = "unknown";
19my $dtype = "unknown";
20my $dsuf = "unknown";
21
22# If we don't know which distribution we're on, then guess it
23($ddir, $dver) = distro_get() if ((not defined $ddir) || (not defined $dver));
24
25# There shold be unicity of names between ddir dfam and dtype
26# In case of duplicate, bad things can happen
27if (($ddir =~ /debian/) ||
28 ($ddir =~ /ubuntu/)) {
29 $dfam="du";
30 $dtype="deb";
31 $dsuf=".$ddir$dver";
32} elsif ($ddir =~ /gentoo/) {
33 $dfam="gen";
34 $dtype="ebuild";
35 my $dver1 = $dver;
36 $dver1 =~ s/\.//;
37 $dsuf=".$ddir$dver1";
38} elsif ($ddir =~ /slackware/) {
39 $dfam="slack";
40 $dtype="tgz";
41 $dsuf=".$dfam$dver";
42} elsif (($ddir =~ /suse/) ||
43 ($ddir =~ /sles/)) {
44 $dfam="novell";
45 $dtype="rpm";
46 $dsuf=".$ddir$dver";
47} elsif (($ddir =~ /redhat/) ||
48 ($ddir =~ /rhel/) ||
49 ($ddir =~ /fedora/) ||
50 ($ddir =~ /centos/)) {
51 $dfam="rh";
52 $dtype="rpm";
53 my $dver1 = $dver;
54 $dver1 =~ s/\.//;
55 if ($ddir =~ /fedora/) {
56 $dsuf=".fc$dver1";
57 } elsif ($ddir =~ /redhat/) {
58 $dsuf=".rh$dver1";
59 } else {
60 $dsuf=".$ddir$dver1";
61 }
62} elsif (($ddir =~ /mandrake/) ||
63 ($ddir =~ /mandriva/)) {
64 $dfam="md";
65 $dtype="rpm";
66 if ($ddir =~ /mandrake/) {
67 my $dver1 = $dver;
68 $dver1 =~ s/\.//;
69 $dsuf=".mdk$dver1";
70 } else {
71 $dsuf=".mdv$dver";
72 }
73} elsif ($ddir =~ /freebsd/) {
74 $dfam="bsd";
75 $dtype="port";
76 my $dver1 = $dver;
77 $dver1 =~ s/\.//;
78 $dsuf=".$dfam$dver1";
79} else {
80 $dfam="unknown";
81 $dtype="unknown";
82 $dsuf="unknown";
83}
84
85return($ddir, $dver, $dfam, $dtype, $dsuf);
86}
87
88sub distro_get {
89}
901;
Note: See TracBrowser for help on using the repository browser.