diff --git a/fhem/FHEM/98_Installer.pm b/fhem/FHEM/98_Installer.pm
index c7dd070e2..b27d8fe7b 100644
--- a/fhem/FHEM/98_Installer.pm
+++ b/fhem/FHEM/98_Installer.pm
@@ -1115,11 +1115,34 @@ sub CreatePrereqsList {
$l .= $rowClose;
if ( $linecount == 1 ) {
+ my $descr =
+ 'These dependencies '
+ . $txtOpen . 'must'
+ . $txtClose
+ . ' be installed for the listed FHEM modules to work:';
+ $descr =
+ 'These dependencies are '
+ . $txtOpen
+ . 'strongly encouraged'
+ . $txtClose
+ . ' and should be installed for full functionality of the listed FHEM modules, except in resource constrained environments:'
+ if ( $importance eq 'Recommended' );
+ $descr =
+ 'These dependencies are '
+ . $txtOpen
+ . 'optional'
+ . $txtClose
+ . ', but are suggested for enhanced operation of the listed FHEM modules:'
+ if ( $importance eq 'Suggested' );
+
push @ret,
'
'
. $importance . '
'
+ . $lb
+ . $descr
+ . $lb
. $lb;
push @ret, $tableOpen . $rowOpen;
push @ret,
@@ -1139,58 +1162,72 @@ sub CreatePrereqsList {
}
}
- if ( defined( $pkgStatus{Perl}{analyzed} ) ) {
- push @ret,
+ if ($found) {
+ if ( defined( $pkgStatus{Perl}{analyzed} ) ) {
+ push @ret,
+ $lb
+ . $txtOpen . 'Hint:'
+ . $txtClose
+ . ' Some of the FHEM modules in use do not provide Perl prerequisites from its metadata.'
+ . $lb;
+
+ if ( $pkgStatus{Perl}{analyzed} == 1 ) {
+ push @ret,
+'This check is based on automatic source code analysis and can be incorrect.'
+ . ' Suggested Perl items may still be required if the module author had decided to implement some own dependency and/or error handling like returning an informative message instead of the original Perl error message.';
+ }
+ elsif ( $pkgStatus{Perl}{analyzed} == 2 ) {
+ push @ret,
+'This check may be incomplete until you install Perl::PrereqScanner::NotQuiteLite for automatic source code analysis.';
+ }
+ }
+
+ unshift @ret,
$lb
- . $txtOpen . 'Hint:'
- . $txtClose
- . ' Some of the used FHEM modules do not provide Perl prerequisites from its metadata.'
- . $lb;
-
- if ( $pkgStatus{Perl}{analyzed} == 1 ) {
- push @ret,
-'This check is based on automatic source code analysis and can be incorrect.';
- }
- elsif ( $pkgStatus{Perl}{analyzed} == 2 ) {
- push @ret,
-'This check may be incomplete until you install Perl::PrereqScanner::NotQuiteLite.';
- }
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundSuggested
+ . ' suggested '
+ . ( $foundSuggested > 1 ? 'items' : 'item' )
+ . ( $html ? '' : '' )
+ if ($foundSuggested);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundRecommended
+ . ' recommended '
+ . ( $foundRecommended > 1 ? 'items' : 'item' )
+ . ( $html ? '' : '' )
+ if ($foundRecommended);
+ unshift @ret,
+ $lb
+ . $space
+ . $space
+ . ( $html ? '' : '' )
+ . $foundRequired
+ . ' required '
+ . ( $foundRequired > 1 ? 'items' : 'item' )
+ . ( $html ? '' : '' )
+ if ($foundRequired);
+ unshift @ret,
+ $found
+ . ' total missing '
+ . ( $found > 1 ? 'prerequisites:' : 'prerequisite:' );
+ }
+ else {
+ my @hooray = (
+ 'hooray', 'hurray', 'phew', 'woop woop',
+ 'woopee', 'wow', 'yay', 'yippie',
+ );
+ my $x = 0 + int( rand( scalar @hooray + 1 - 0 ) );
+ unshift @ret,
+ ucfirst( $hooray[$x] )
+ . '! All prerequisites are met.'
+ . ( $html ? ' 🥳' : '' );
}
-
- unshift @ret,
- $lb
- . $space
- . $space
- . ( $html ? '' : '' )
- . $foundSuggested
- . ' suggested '
- . ( $foundSuggested > 1 ? 'items' : 'item' )
- . ( $html ? '' : '' )
- if ($foundSuggested);
- unshift @ret,
- $lb
- . $space
- . $space
- . ( $html ? '' : '' )
- . $foundRecommended
- . ' recommended '
- . ( $foundRecommended > 1 ? 'items' : 'item' )
- . ( $html ? '' : '' )
- if ($foundRecommended);
- unshift @ret,
- $lb
- . $space
- . $space
- . ( $html ? '' : '' )
- . $foundRequired
- . ' required '
- . ( $foundRequired > 1 ? 'items' : 'item' )
- . ( $html ? '' : '' )
- if ($foundRequired);
- unshift @ret,
- $found
- . ' total missing '
- . ( $found > 1 ? 'prerequisites:' : 'prerequisite:' );
unshift @ret,
'