mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 06:03:28 +00:00
Update make module to separate between modules and packages
This commit is contained in:
@@ -33,7 +33,7 @@ $ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin";
|
||||
my $allow_overwrite = 0;
|
||||
|
||||
my ($force_theme, $rpmdepends, $rpmrecommends, $no_prefix, $set_prefix, $vendor,
|
||||
$provides, $obsoletes, $url, $force_usermin, $final_mod, $sign, $keyname,
|
||||
$url, $force_usermin, $final_mod, $sign, $keyname,
|
||||
$epoch, $dir, $ver, @extrareqs, @exclude);
|
||||
|
||||
# Parse command-line args
|
||||
@@ -64,12 +64,9 @@ while(@ARGV) {
|
||||
elsif ($a eq "--vendor") {
|
||||
$vendor = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--provides") {
|
||||
$provides = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--obsoletes") {
|
||||
$obsoletes = &untaint(shift(@ARGV));
|
||||
}
|
||||
# --recommends, --suggests, --conflicts, --provides and --obsoletes are
|
||||
# not for Webmin modules, and not meant to have prefix, and populated
|
||||
# from module.info automatically
|
||||
elsif ($a eq "--url") {
|
||||
$url = shift(@ARGV);
|
||||
}
|
||||
@@ -124,12 +121,12 @@ if (!$dir) {
|
||||
print YELLOW, "[--force-theme]\n";
|
||||
print " [--rpm-dir directory]\n";
|
||||
print " [--rpm-depends]\n";
|
||||
print " [--rpm-recommends]\n";
|
||||
print " [--no-prefix]\n";
|
||||
print " [--prefix prefix]\n";
|
||||
print " [--vendor name]\n";
|
||||
print " [--licence name]\n";
|
||||
print " [--url url]\n";
|
||||
print " [--provides provides]\n";
|
||||
print " [--usermin]\n";
|
||||
print " [--release number]\n";
|
||||
print " [--epoch number]\n";
|
||||
@@ -244,7 +241,7 @@ system("/bin/rm -rf /tmp/makemodulerpm");
|
||||
|
||||
# Build list of dependencies on other RPMs, for inclusion as an RPM
|
||||
# Requires: header
|
||||
my $rdeps;
|
||||
my $rdeps = "";
|
||||
if ($rpmdepends && defined($minfo{'depends'})) {
|
||||
my @rdeps;
|
||||
foreach my $d (split(/\s+/, $minfo{'depends'})) {
|
||||
@@ -286,21 +283,68 @@ if ($rpmdepends && defined($minfo{'depends'})) {
|
||||
$rdeps = join(" ", @rdeps, @extrareqs);
|
||||
}
|
||||
|
||||
# Build list of recommended packages
|
||||
# Build list of recommended packages on other RPMs, for inclusion as an RPM
|
||||
# Recommends: header (Webmin module with prefixes)
|
||||
my $rrecom = "";
|
||||
if ($rpmrecommends && defined($minfo{'recommends'})) {
|
||||
my @rrecom;
|
||||
foreach my $d (split(/\s+/, $minfo{'recommends'})) {
|
||||
push(@rrecom, $prefix.$d);
|
||||
}
|
||||
$rrecom = join(" ", @rrecom);
|
||||
}
|
||||
|
||||
# Build (append) list of required packages (not Webmin modules)
|
||||
my @rrequires = ( );
|
||||
if (exists($minfo{'rpm_requires'})) {
|
||||
foreach my $rpmrequire (split(/\s+/, $minfo{'rpm_requires'})) {
|
||||
push(@rrequires, $rpmrequire);
|
||||
}
|
||||
$rdeps .= " " . join(" ", @rrequires) if (@rrequires);
|
||||
}
|
||||
|
||||
# Build (append) list of recommended packages (not Webmin modules)
|
||||
my @rrecommends = ( );
|
||||
if ($rpmrecommends && exists($minfo{'recommends'})) {
|
||||
foreach my $rpmrecommend (split(/\s+/, $minfo{'recommends'})) {
|
||||
if (exists($minfo{'rpm_recommends'})) {
|
||||
foreach my $rpmrecommend (split(/\s+/, $minfo{'rpm_recommends'})) {
|
||||
push(@rrecommends, $rpmrecommend);
|
||||
}
|
||||
$rrecom .= " " . join(" ", @rrecommends) if (@rrecommends);
|
||||
}
|
||||
|
||||
# Build (standalone) list of suggested packages (not Webmin modules)
|
||||
my @rsuggests = ( );
|
||||
if (exists($minfo{'rpm_suggests'})) {
|
||||
foreach my $rpmsuggest (split(/\s+/, $minfo{'rpm_suggests'})) {
|
||||
push(@rsuggests, $rpmsuggest);
|
||||
}
|
||||
}
|
||||
|
||||
# If module has 'provides', consider it too
|
||||
$provides .= ($provides ? " " : "") . $minfo{'provides'}
|
||||
if (exists($minfo{'provides'}));
|
||||
# Build (standalone) list of conflicts (not Webmin modules)
|
||||
my @rconflicts = ( );
|
||||
if (exists($minfo{'rpm_conflicts'})) {
|
||||
foreach my $rpmconflict (split(/\s+/, $minfo{'rpm_conflicts'})) {
|
||||
push(@rconflicts, $rpmconflict);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of provides (not Webmin modules)
|
||||
my @rprovides = ( );
|
||||
if (exists($minfo{'rpm_provides'})) {
|
||||
foreach my $rpmprovide (split(/\s+/, $minfo{'rpm_provides'})) {
|
||||
push(@rprovides, $rpmprovide);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of obsoletes (not Webmin modules)
|
||||
my @robsoletes = ( );
|
||||
if (exists($minfo{'rpm_obsoletes'})) {
|
||||
foreach my $rpmobsolete (split(/\s+/, $minfo{'rpm_obsoletes'})) {
|
||||
push(@robsoletes, $rpmobsolete);
|
||||
}
|
||||
}
|
||||
|
||||
# Create the SPEC file
|
||||
my $providesheader = $provides ? "Provides: $provides" : "";
|
||||
my $obsoletesheader = $obsoletes ? "Obsoletes: $obsoletes" : "";
|
||||
my $vendorheader = $vendor ? "Vendor: $vendor" : "";
|
||||
my $urlheader = $url ? "URL: $url" : "";
|
||||
my $epochheader = $epoch ? "Epoch: $epoch" : "";
|
||||
@@ -318,7 +362,11 @@ Version: $ver
|
||||
Release: $release
|
||||
Requires: /bin/sh /usr/bin/perl /usr/libexec/$prog $rdeps
|
||||
EOF
|
||||
print $SPEC "Recommends: " . join(" ", @rrecommends) . "\n" if (@rrecommends);
|
||||
print $SPEC "Recommends: $rrecom\n" if ($rrecom);
|
||||
print $SPEC "Suggests: " . join(" ", @rsuggests) . "\n" if (@rsuggests);
|
||||
print $SPEC "Conflicts: " . join(" ", @rconflicts) . "\n" if (@rconflicts);
|
||||
print $SPEC "Provides: " . join(" ", @rprovides) . "\n" if (@rprovides);
|
||||
print $SPEC "Obsoletes: " . join(" ", @robsoletes) . "\n" if (@robsoletes);
|
||||
print $SPEC <<EOF;
|
||||
Autoreq: 0
|
||||
Autoprov: 0
|
||||
@@ -328,8 +376,6 @@ Source: $mod.tar.gz
|
||||
BuildRoot: /tmp/%{name}-%{version}
|
||||
BuildArchitectures: noarch
|
||||
$epochheader
|
||||
$providesheader
|
||||
$obsoletesheader
|
||||
$vendorheader
|
||||
$urlheader
|
||||
%description
|
||||
|
||||
Reference in New Issue
Block a user