Add support for recommended packages

This commit is contained in:
Ilia Ross
2025-01-24 13:26:54 +02:00
parent 24d39f631d
commit ad540808df
2 changed files with 34 additions and 5 deletions

View File

@ -28,8 +28,9 @@ my $files_file = "$debian_dir/files";
die RED, "makemoduledeb.pl must be run on Debian", RESET;
# Parse command-line args
my ($force_theme, $url, $upstream, $debdepends, $no_prefix, $force_usermin,
$release, $allow_overwrite, $final_mod, $dsc_file, $dir, $ver, @exclude);
my ($force_theme, $url, $upstream, $debdepends, $debrecommends, $no_prefix,
$force_usermin, $release, $allow_overwrite, $final_mod, $dsc_file, $dir,
$ver, @exclude);
while(@ARGV) {
my $a = shift(@ARGV);
@ -51,6 +52,9 @@ while(@ARGV) {
elsif ($a eq "--deb-depends") {
$debdepends = 1;
}
elsif ($a eq "--deb-recommends") {
$debrecommends = 1;
}
elsif ($a eq "--no-prefix") {
$no_prefix = 1;
}
@ -254,6 +258,14 @@ if ($debdepends && exists($minfo{'depends'})) {
}
my $rdeps = join(", ", @rdeps);
# Recommends: header
my @rrecommends = ( );
if ($debrecommends && exists($minfo{'recommends'})) {
foreach my $debrecommend (split(/\s+/, $minfo{'recommends'})) {
push(@rrecommends, $debrecommend);
}
}
# Create the control file
my $kbsize = int(($size-1) / 1024)+1;
open(my $CONTROL, ">", "$control_file");
@ -265,6 +277,9 @@ Priority: optional
Architecture: all
Essential: no
Depends: $rdeps
EOF
print $CONTROL "Recommends: ", join(", ", @rrecommends), "\n" if (@rrecommends);
print $CONTROL <<EOF;
Pre-Depends: bash, perl
Installed-Size: $kbsize
Maintainer: $email

View File

@ -32,9 +32,9 @@ my $release = 1;
$ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin";
my $allow_overwrite = 0;
my ($force_theme, $rpmdepends, $no_prefix, $set_prefix, $vendor, $provides,
$obsoletes, $url, $force_usermin, $final_mod, $sign, $keyname, $epoch, $dir,
$ver, @extrareqs, @exclude);
my ($force_theme, $rpmdepends, $rpmrecommends, $no_prefix, $set_prefix, $vendor,
$provides, $obsoletes, $url, $force_usermin, $final_mod, $sign, $keyname,
$epoch, $dir, $ver, @extrareqs, @exclude);
# Parse command-line args
while(@ARGV) {
@ -52,6 +52,9 @@ while(@ARGV) {
elsif ($a eq "--rpm-depends") {
$rpmdepends = 1;
}
elsif ($a eq "--rpm-recommends") {
$rpmrecommends = 1;
}
elsif ($a eq "--no-prefix") {
$no_prefix = 1;
}
@ -283,6 +286,14 @@ if ($rpmdepends && defined($minfo{'depends'})) {
$rdeps = join(" ", @rdeps, @extrareqs);
}
# Build list of recommended packages
my @rrecommends = ( );
if ($rpmrecommends && exists($minfo{'recommends'})) {
foreach my $rpmrecommend (split(/\s+/, $minfo{'recommends'})) {
push(@rrecommends, $rpmrecommend);
}
}
# Create the SPEC file
my $providesheader = $provides ? "Provides: $provides" : "";
my $obsoletesheader = $obsoletes ? "Obsoletes: $obsoletes" : "";
@ -302,6 +313,9 @@ Name: $prefix$mod
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 <<EOF;
Autoreq: 0
Autoprov: 0
License: $licence