Hello community,

here is the log from the commit of package rpmorphan for openSUSE:Factory 
checked in at 2018-12-04 20:55:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmorphan (Old)
 and      /work/SRC/openSUSE:Factory/.rpmorphan.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpmorphan"

Tue Dec  4 20:55:09 2018 rev:20 rq:653537 version:1.19

Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmorphan/rpmorphan.changes      2018-02-06 
16:49:45.902353313 +0100
+++ /work/SRC/openSUSE:Factory/.rpmorphan.new.19453/rpmorphan.changes   
2018-12-04 20:55:21.560784072 +0100
@@ -1,0 +2,14 @@
+Sun Dec  2 20:53:42 UTC 2018 - Asterios Dramis <[email protected]>
+
+- Update to 1.19:
+  improvement :
+  * (rpmorphan) add recommends option
+  * (rpmdep) add recommends/suggests option
+  * (rpmdep) handle require with if syntax (redhat-rpm-config)
+  * (rpmextra) add repoquery method
+  * (rpmextra) can force method using env RPMEXTRA_METHOD
+  bugfix :
+  * (rpmdep) remove warnings
+  * (rpmextra) fix problem with yum/dnf wrapping
+
+-------------------------------------------------------------------

Old:
----
  rpmorphan-1.18.tar.gz

New:
----
  rpmorphan-1.19.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rpmorphan.spec ++++++
--- /var/tmp/diff_new_pack.YaRyty/_old  2018-12-04 20:55:22.676782829 +0100
+++ /var/tmp/diff_new_pack.YaRyty/_new  2018-12-04 20:55:22.728782771 +0100
@@ -12,17 +12,17 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           rpmorphan
-Version:        1.18
+Version:        1.19
 Release:        0
 Summary:        List the orphaned RPM packages
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/Packages
-Url:            http://rpmorphan.sourceforge.net/
+URL:            http://rpmorphan.sourceforge.net/
 Source0:        
http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
 Requires:       rpm
 Recommends:     logrotate
@@ -47,6 +47,8 @@
 sed -i '/^#\!/d' rpmorphan-curses-lib.pl
 sed -i '/^#\!/d' rpmorphan-lib.pl
 sed -i '/^#\!/d' rpmorphan-tk-lib.pl
+# Fix rpmlint error "env-script-interpreter"
+sed -i 's/^#\!\/usr\/bin\/env\ perl/#\!\/usr\/bin\/perl/' *.pl
 
 %build
 
@@ -54,7 +56,8 @@
 %make_install
 
 %files
-%doc Authors COPYING Changelog NEWS Readme Readme.fr Todo rpmorphan.lsm
+%doc Authors Changelog NEWS Readme Readme.fr Todo rpmorphan.lsm
+%license COPYING
 %config(noreplace) %{_sysconfdir}/logrotate.d/rpmorphan
 %config(noreplace) %{_sysconfdir}/rpmorphanrc
 %{_bindir}/grpmorphan
@@ -68,11 +71,11 @@
 %{_bindir}/rpmorphan.pl
 %{_bindir}/rpmusage
 %{_bindir}/rpmusage.pl
-%{_mandir}/man1/rpmdep.1%{ext_man}
-%{_mandir}/man1/rpmduplicates.1%{ext_man}
-%{_mandir}/man1/rpmextra.1%{ext_man}
-%{_mandir}/man1/rpmorphan.1%{ext_man}
-%{_mandir}/man1/rpmusage.1%{ext_man}
+%{_mandir}/man1/rpmdep.1%{?ext_man}
+%{_mandir}/man1/rpmduplicates.1%{?ext_man}
+%{_mandir}/man1/rpmextra.1%{?ext_man}
+%{_mandir}/man1/rpmorphan.1%{?ext_man}
+%{_mandir}/man1/rpmusage.1%{?ext_man}
 %{_libexecdir}/rpmorphan/
 %dir %{_localstatedir}/lib/rpmorphan
 %{_localstatedir}/lib/rpmorphan/keep

++++++ rpmorphan-1.18.tar.gz -> rpmorphan-1.19.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/Changelog new/rpmorphan-1.19/Changelog
--- old/rpmorphan-1.18/Changelog        2017-12-15 12:46:37.000000000 +0100
+++ new/rpmorphan-1.19/Changelog        2018-09-14 17:43:32.000000000 +0200
@@ -1,3 +1,12 @@
+2018-09-14 Eric Gerbier <[email protected]> 1.19
+       * (rpmorphan) add recommends option
+       * (rpmdep) add recommends/suggests option
+       * (rpmdep) remove warnings
+       * (rpmdep) handle require with if syntax (redhat-rpm-config)
+       * (rpmextra) fix problem with yum/dnf wrapping
+       * (rpmextra) add repoquery method
+       * (rpmextra) can force method using env RPMEXTRA_METHOD
+
 2017-12-22 Eric Gerbier <[email protected]> 1.18
        * (rpmorphan curses) fix error on line 860/862 rpmorphan-lib.pl 
(undefined value)
        * (rpmorphan curses) block q key on info display
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/Makefile new/rpmorphan-1.19/Makefile
--- old/rpmorphan-1.18/Makefile 2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/Makefile 2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: rpmorphan-1.18 | Makefile | Fri Apr 22 15:46:36 2016 +0200 | Eric 
Gerbier  $
+# $Id: rpmorphan-1.19 | Makefile | Fri Apr 22 15:46:36 2016 +0200 | Eric 
Gerbier  $
 # recommanded by debian install guide
 DESTDIR =
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/NEWS new/rpmorphan-1.19/NEWS
--- old/rpmorphan-1.18/NEWS     2017-12-15 12:47:02.000000000 +0100
+++ new/rpmorphan-1.19/NEWS     2018-09-14 17:43:32.000000000 +0200
@@ -1,3 +1,16 @@
+                       1.19 version
+
+improvement :
+* (rpmorphan) add recommends option
+* (rpmdep) add recommends/suggests option
+* (rpmdep) handle require with if syntax (redhat-rpm-config)
+* (rpmextra) add repoquery method
+* (rpmextra) can force method using env RPMEXTRA_METHOD
+
+bugfix :
+* (rpmdep) remove warnings
+       * (rpmextra) fix problem with yum/dnf wrapping
+-------------------------------------------------------------------------------
                        1.18 version
 
 bugfix :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/Readme new/rpmorphan-1.19/Readme
--- old/rpmorphan-1.18/Readme   2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/Readme   2018-09-14 17:45:29.000000000 +0200
@@ -45,4 +45,4 @@
 
 -- 
 Eric Gerbier
-$Id: rpmorphan-1.18 | Readme | Thu Mar 31 16:11:08 2016 +0200 | Eric Gerbier  $
+$Id: rpmorphan-1.19 | Readme | Thu Mar 31 16:11:08 2016 +0200 | Eric Gerbier  $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/Readme.fr new/rpmorphan-1.19/Readme.fr
--- old/rpmorphan-1.18/Readme.fr        2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/Readme.fr        2018-09-14 17:45:29.000000000 +0200
@@ -40,4 +40,4 @@
 
 -- 
 Eric Gerbier
-$Id: rpmorphan-1.18 | Readme.fr | Thu Mar 31 16:11:08 2016 +0200 | Eric 
Gerbier  $
+$Id: rpmorphan-1.19 | Readme.fr | Thu Mar 31 16:11:08 2016 +0200 | Eric 
Gerbier  $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmdep.1 new/rpmorphan-1.19/rpmdep.1
--- old/rpmorphan-1.18/rpmdep.1 2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmdep.1 2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RPMDEP 1"
-.TH RPMDEP 1 "2017-12-22" "perl v5.26.1" "User Contributed Perl Documentation"
+.TH RPMDEP 1 "2018-09-13" "perl v5.26.2" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -159,6 +163,8 @@
 \&   \-debug               debug mode
 \&   \-dot dotfile         build a dot file for graphviz
 \&   \-depending           instead of dependencies, display dependings
+\&   \-suggests            also show very weak dependencies : suggests
+\&   \-recommends          also show weak dependencies : recommends
 \&   \-all                 works on all installed packages
 .Ve
 .SH "REQUIRED ARGUMENTS"
@@ -202,6 +208,12 @@
 instead of showing package dependencies (rpm \-qR),
 display packages wich are depending upon the given argument :
 it then act as an improved 'rpm \-q \-\-whatrequires' command
+.IP "\fB\-\-suggests\fR" 8
+.IX Item "--suggests"
+add to \*(L"required\*(R" dependencies, very weak dependencies
+.IP "\fB\-\-recommends\fR" 8
+.IX Item "--recommends"
+add to \*(L"required\*(R" dependencies, weak dependencies
 .IP "\fB\-\-all\fR" 8
 .IX Item "--all"
 rpmdep will then work on all installed packages, and display the results
@@ -250,6 +262,12 @@
 .Vb 1
 \&  rpmdep.pl \-a \-\-depending \-\-dot alldep.dot
 .Ve
+.PP
+get all dependencies  of rpmrebuild package
+.PP
+.Vb 1
+\&  rpmdep.pl \-suggests \-\-recommends rpmrebuild
+.Ve
 .SH "FILES"
 .IX Header "FILES"
 the program can use the /tmp/rpmorphan.cache file
@@ -283,7 +301,7 @@
 nothing
 .SH "DEPENDENCIES"
 .IX Header "DEPENDENCIES"
-you should use graphviz to build graph from
+you should use graphviz to build graph from dot files
 .SH "INCOMPATIBILITIES"
 .IX Header "INCOMPATIBILITIES"
 not known
@@ -291,9 +309,11 @@
 .IX Header "BUGS AND LIMITATIONS"
 the program does not work well on program installed
 in several versions
+.PP
+the code does not use the following rpm tags : Supplements, Enhances
 .SH "NOTES"
 .IX Header "NOTES"
-this program can be used as \*(L"normal\*(R" user
+this program can be used as \*(L"normal\*(R" (unpriviledge) user
 .SH "SEE ALSO"
 .IX Header "SEE ALSO"
 \fIrpm\fR\|(1) for rpm call
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmdep.pl new/rpmorphan-1.19/rpmdep.pl
--- old/rpmorphan-1.18/rpmdep.pl        2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmdep.pl        2018-09-14 17:45:29.000000000 +0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmdep.pl | Tue Jul 11 13:10:43 2017 +0200 | Eric 
Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmdep.pl | Thu Sep 13 18:50:59 2018 +0200 | Eric 
Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -70,13 +70,24 @@
 }
 #########################################################
 # convert a name to a package name
-sub name2pac($$$) {
+# prototype because recursive
+sub name2pac($$$$);
+
+sub name2pac($$$$) {
        my $name           = shift @_;    # object name
        my $rh_is_provided = shift @_;    # general provide hash
        my $rh_provides    = shift @_;    # general provide hash
+       my $flag_opt       = shift @_;    # optional packages (suggests, 
recommends)
+
+       # debug("name2pac on $name");
 
        my $pac;
-       if ( is_package( $name, $rh_provides ) ) {
+       ## no critic (ProhibitCascadingIfElse)
+       if ( ( !$name ) or ( $name =~ m/^\s*$/ ) ) {
+               $pac = undef;
+               debug('name2pac) catch empty name');
+       }
+       elsif ( is_package( $name, $rh_provides ) ) {
 
                # name is a package
                $pac = $name;
@@ -88,6 +99,53 @@
                $pac = $rh_is_provided->{$name};
                debug("(name2pac) $name is a file/virtual");
        }
+
+# cf https://fedoraproject.org/wiki/Features/UsrMove 
https://wiki.mageia.org/en/Feature:UsrMove
+# problem with /bin and /usr/bin
+       elsif ( $name =~ /^\/bin\/(.*)/ ) {
+               return name2pac( "/usr/bin/$1", $rh_is_provided, $rh_provides,
+                       $flag_opt );
+       }
+
+       # problem with /sbin versus /usr/sbin
+       elsif ( $name =~ /^\/sbin\/(.*)/ ) {
+               return name2pac( "/usr/sbin/$1", $rh_is_provided, $rh_provides,
+                       $flag_opt );
+
+       }
+       elsif ( $name =~ /^\/lib\/(.*)/ ) {
+               return name2pac( "/usr/lib/$1", $rh_is_provided, $rh_provides,
+                       $flag_opt );
+       }
+       elsif ( $name =~ /^\/lib64\/(.*)/ ) {
+               return name2pac( "/usr/lib64/$1", $rh_is_provided, $rh_provides,
+                       $flag_opt );
+       }
+       ## no critic (ProhibitEscapedMetacharacters)
+       # perl(:MODULE_COMPAT_5.22.2)
+       elsif ( $name =~ /(.*)\(/ ) {
+               return name2pac( $1, $rh_is_provided, $rh_provides, $flag_opt );
+       }
+
+       # git-svn[== 1:2.13.6]
+       elsif ( $name =~ /(.*)\[/ ) {
+               return name2pac( $1, $rh_is_provided, $rh_provides, $flag_opt );
+       }
+
+       # (annobin if gcc)
+       elsif ( $name =~ m/^\(.* if .*\)/ ) {
+               debug("(name2pac) catch if dependency on $name");
+               $pac = undef;
+       }
+
+       # should never pass here
+       # or we have a problem with rpm query or rpm analysis
+       # but with suggests/recommends options, we can have a dependency on
+       # an uninstalled package
+       elsif ($flag_opt) {
+               debug("(name2pac) can not find who provides $name");
+               $pac = undef;
+       }
        else {
                warning("(name2pac) can not find who provides $name");
                $pac = undef;
@@ -96,8 +154,11 @@
 }
 #########################################################
 # search the dependency of $name
-# no prototype because recursive
-sub solve_dep {
+# prototype because recursive
+## no critic (ProhibitManyArgs)
+sub solve_dep ($$$$$$$$$);
+
+sub solve_dep ($$$$$$$$$) {
        my $name           = shift @_;    # package name
        my $rh_is_provided = shift @_;    # general provide hash
        my $rh_provides    = shift @_;    # general provide hash
@@ -106,6 +167,7 @@
        my $rh_res         = shift @_;    # result cache
        my $fh_dot         = shift @_;    # flag for dot
        my $level          = shift @_;    # recurse level
+       my $flag_opt       = shift @_;    # optional packages (suggests, 
recommends)
 
        $level++;                         # recurse level
        my $state = 0;                    # state ( 0 for ok)
@@ -125,7 +187,7 @@
 
                # dep may be a package or a file or a virtual
                # searched package
-               my $pac = name2pac( $dep, $rh_is_provided, $rh_provides );
+               my $pac = name2pac( $dep, $rh_is_provided, $rh_provides, 
$flag_opt );
                if ( !defined $pac ) {
                        $state++;
                        next;
@@ -159,9 +221,11 @@
                        if ( !exists $rh_res->{$pac} ) {
 
                                # recursive call on $pac
-                               my $sub_state =
-                                 solve_dep( $pac, $rh_is_provided, 
$rh_provides, $rh_depends,
-                                       $rh_files, $rh_res, $fh_dot, $level );
+                               my $sub_state = solve_dep(
+                                       $pac,        $rh_is_provided, 
$rh_provides,
+                                       $rh_depends, $rh_files,       $rh_res,
+                                       $fh_dot,     $level,          $flag_opt
+                               );
                                $state += $sub_state;
                        }
 
@@ -174,6 +238,7 @@
        }    # foreach
        return $state;
 }
+## use critic (ProhibitManyArgs)
 #########################################################
 # convert result for package in a human list
 sub hres2human($$) {
@@ -245,10 +310,11 @@
 }
 #########################################################
 # convert dependencies on file/virtual to dependencies on package
-sub convert2pac($$$) {
+sub convert2pac($$$$) {
        my $rh_depends     = shift @_;    # input/output : general dependencies 
hash
        my $rh_provides    = shift @_;    # input : general provide hash
        my $rh_is_provided = shift @_;    # input : provided hash
+       my $flag_opt       = shift @_;    # optional packages (suggests, 
recommends)
 
        #print "------ depending of perl -----------------\n";
        #print dump $rh_depends->{'perl'};
@@ -257,8 +323,10 @@
 
        foreach my $name ( keys %{$rh_depends} ) {
                next if ( $name =~ m/^rpmlib/ );
+               debug("convert2pac $name");
                if ( !is_package( $name, $rh_provides ) ) {
-                       my $pac = name2pac( $name, $rh_is_provided, 
$rh_provides );
+                       my $pac =
+                         name2pac( $name, $rh_is_provided, $rh_provides, 
$flag_opt );
                        next if ( !defined $pac );
                        if ( exists $rh_depends->{$pac} ) {
                                %{ $rh_depends->{$pac} } =
@@ -283,7 +351,7 @@
 #      main
 #
 #########################################################
-my $version = '0.6';
+my $version = '0.7';
 
 my $opt_help;
 my $opt_man;
@@ -294,6 +362,12 @@
 my $opt_dot;
 my $opt_depending;
 my $opt_all;
+my $opt_suggests;
+my $opt_recommends;
+
+# not really used, but avoid a warning from rpmorphan-lib
+# when use : is_set( $rh_opt, 'arch' );
+my $opt_arch;
 
 my %opt = (
        'help'        => \$opt_help,
@@ -305,17 +379,22 @@
        'use-cache'   => \$opt_use_cache,
        'clear-cache' => \$opt_clear_cache,
        'depending'   => \$opt_depending,
+       'suggests'    => \$opt_suggests,
+       'recommends'  => \$opt_recommends,
        'all'         => \$opt_all,
+       'arch'        => \$opt_arch,
 );
 
 Getopt::Long::Configure('no_ignore_case');
 GetOptions(
-       \%opt,         'help|?',    'man',   'debug',
-       'level',       'version|V', 'dot=s', 'use-cache!',
-       'clear-cache', 'depending', 'all|a',
+       \%opt,         'help|?',    'man',      'debug',
+       'level',       'version|V', 'dot=s',    'use-cache!',
+       'clear-cache', 'depending', 'suggests', 'recommends',
+       'all|a',
 ) or pod2usage(2);
 
 init_debug($opt_debug);
+my $flag_opt = $opt_suggests || $opt_recommends;
 
 if ($opt_help) {
        pod2usage(1);
@@ -342,6 +421,7 @@
 my %virtual;
 my %requires;
 
+debug('1 : read_rpm_data');
 read_rpm_data( \%opt, \%provides, \%install_time, \%files, \%depends,
        \%virtual, \%requires );
 
@@ -351,11 +431,14 @@
 }
 
 my %is_provided_by;
+debug('2 : build_provided');
 build_provided( \%provides, \%is_provided_by );
 
-convert2pac( \%depends, \%provides, \%is_provided_by );
+debug('3 : convert2pac');
+convert2pac( \%depends, \%provides, \%is_provided_by, $flag_opt );
 
 my %depends_from;
+debug('4 : build_depends_from');
 build_depends_from( \%depends, \%depends_from );
 
 # open dot graph ?
@@ -373,7 +456,7 @@
        }
 }
 
-debug('2 : solve');
+debug('5 : solve');
 
 # store results in a hash $res{$pac}{$dep}
 # so keys $res{$pac} is the result for $pac
@@ -382,16 +465,20 @@
 if ($opt_all) {
        if ($opt_depending) {
                foreach my $pac ( keys %install_time ) {
-                       $state +=
-                         solve_dep( $pac, \%is_provided_by, \%provides, 
\%depends,
-                               \%files, \%res, $fh_dot, 0 );
+                       $state += solve_dep(
+                               $pac,      \%is_provided_by, \%provides,
+                               \%depends, \%files,          \%res,
+                               $fh_dot,   0,                $flag_opt
+                       );
                }
        }
        else {
                foreach my $pac ( keys %install_time ) {
-                       $state +=
-                         solve_dep( $pac, \%is_provided_by, \%provides, 
\%depends_from,
-                               \%files, \%res, $fh_dot, 0 );
+                       $state += solve_dep(
+                               $pac,           \%is_provided_by, \%provides,
+                               \%depends_from, \%files,          \%res,
+                               $fh_dot,        0,                $flag_opt
+                       );
                }
        }
        foreach my $pac (
@@ -409,9 +496,11 @@
        # search for depending packages
        #print "-- $package depends --\n";
        #print dump( $depends{$package} );
-       $state =
-         solve_dep( $package, \%is_provided_by, \%provides, \%depends, \%files,
-               \%res, $fh_dot, 0 );
+       $state = solve_dep(
+               $package,  \%is_provided_by, \%provides,
+               \%depends, \%files,          \%res,
+               $fh_dot,   0,                $flag_opt
+       );
 
        my $res = hres2human( $package, \%res );
        if ($res) {
@@ -426,8 +515,11 @@
        # search for dependencies
        #print "-- $package depends_from --\n";
        #print dump( $depends_from{$package} );
-       $state = solve_dep( $package, \%is_provided_by, \%provides, 
\%depends_from,
-               \%files, \%res, $fh_dot, 0 );
+       $state = solve_dep(
+               $package,       \%is_provided_by, \%provides,
+               \%depends_from, \%files,          \%res,
+               $fh_dot,        0,                $flag_opt
+       );
 
        my $res = hres2human( $package, \%res );
        if ($res) {
@@ -474,6 +566,8 @@
    -debug              debug mode
    -dot dotfile                build a dot file for graphviz
    -depending          instead of dependencies, display dependings
+   -suggests           also show very weak dependencies : suggests
+   -recommends         also show weak dependencies : recommends
    -all                        works on all installed packages
 
 =head1 REQUIRED ARGUMENTS
@@ -529,6 +623,14 @@
 display packages wich are depending upon the given argument :
 it then act as an improved 'rpm -q --whatrequires' command
 
+=item B<--suggests>
+
+add to "required" dependencies, very weak dependencies
+
+=item B<--recommends>
+
+add to "required" dependencies, weak dependencies
+
 =item B<--all>
 
 rpmdep will then work on all installed packages, and display the results
@@ -567,6 +669,10 @@
 
   rpmdep.pl -a --depending --dot alldep.dot
 
+get all dependencies  of rpmrebuild package
+
+  rpmdep.pl -suggests --recommends rpmrebuild
+
 =head1 FILES
 
 the program can use the /tmp/rpmorphan.cache file
@@ -613,7 +719,7 @@
 
 =head1 DEPENDENCIES
 
-you should use graphviz to build graph from 
+you should use graphviz to build graph from dot files
 
 =head1 INCOMPATIBILITIES
 
@@ -624,9 +730,11 @@
 the program does not work well on program installed
 in several versions
 
+the code does not use the following rpm tags : Supplements, Enhances
+
 =head1 NOTES
 
-this program can be used as "normal" user
+this program can be used as "normal" (unpriviledge) user
 
 =head1 SEE ALSO
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmduplicates.1 
new/rpmorphan-1.19/rpmduplicates.1
--- old/rpmorphan-1.18/rpmduplicates.1  2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmduplicates.1  2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RPMDUPLICATES 1"
-.TH RPMDUPLICATES 1 "2017-12-22" "perl v5.26.1" "User Contributed Perl 
Documentation"
+.TH RPMDUPLICATES 1 "2018-09-13" "perl v5.26.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmduplicates.pl 
new/rpmorphan-1.19/rpmduplicates.pl
--- old/rpmorphan-1.18/rpmduplicates.pl 2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmduplicates.pl 2018-09-14 17:45:29.000000000 +0200
@@ -3,7 +3,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmduplicates.pl | Fri Apr 1 12:52:04 2016 +0200 | 
Eric Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmduplicates.pl | Fri Apr 1 12:52:04 2016 +0200 | 
Eric Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmextra.1 
new/rpmorphan-1.19/rpmextra.1
--- old/rpmorphan-1.18/rpmextra.1       2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmextra.1       2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RPMEXTRA 1"
-.TH RPMEXTRA 1 "2017-12-22" "perl v5.26.1" "User Contributed Perl 
Documentation"
+.TH RPMEXTRA 1 "2018-09-14" "perl v5.26.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -188,10 +192,16 @@
 .SH "CONFIGURATION"
 .IX Header "CONFIGURATION"
 nothing
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+.IP "\s-1RPMEXTRA_METHOD\s0" 8
+.IX Item "RPMEXTRA_METHOD"
+for experts/developers only : allow to force the method used to get rpm
+data. It can be set to repoquery/dnf/yum/package\-cleanup/urpmq/zypper
 .SH "DEPENDENCIES"
 .IX Header "DEPENDENCIES"
 rpmextra depends upon rpm package managers.
-it can use yum (Redhat), urpmi (Mandriva), zypper (Suse) tools
+it can use yum/dnf (Redhat), urpmi (Mandriva), zypper (Suse) tools
 .SH "INCOMPATIBILITIES"
 .IX Header "INCOMPATIBILITIES"
 not known
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmextra.pl 
new/rpmorphan-1.19/rpmextra.pl
--- old/rpmorphan-1.18/rpmextra.pl      2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmextra.pl      2018-09-14 17:45:29.000000000 +0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmextra.pl | Tue Jul 11 13:10:43 2017 +0200 | Eric 
Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmextra.pl | Fri Sep 14 17:30:03 2018 +0200 | Eric 
Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -70,15 +70,28 @@
        return @sorted_list;
 }
 #########################################################
+# for repoquery tool
+# ex : redhat/centos
+sub get_repoquery($$) {
+       my $cmd = shift @_;    # path to repoquery
+       my $arg = shift @_;
+
+       $cmd .= $arg;
+       debug("using $cmd ");
+
+       system $cmd;
+       return;
+}
+#########################################################
 # for distribution using package-cleanup
 # ex : redhat/centos
-sub get_extra_cleanup($) {
+sub get_extra_cleanup($$) {
        my $cmd = shift @_;    # path to package-cleanup
+       my $arg = shift @_;
 
+       $cmd .= $arg;
        debug("using $cmd ");
 
-       $cmd .= ' -q --orphans';
-
        # output look like :
        # kernel-2.6.35.12-90.fc14.i686
        # rpmorphan-1.8-1.noarch
@@ -111,38 +124,51 @@
 #########################################################
 # for distribution using yum/dnf
 # ex : redhat/centos/fedora
-sub get_extra_redhat($) {
+sub get_extra_redhat($$) {
        my $cmd = shift @_;    # path to yum
+       my $arg = shift @_;
 
+       $cmd .= $arg;
        debug("using $cmd");
-       $cmd .= ' -q list extras 2>/dev/null';
 
        # output look like :
        # zynaddsubfx.x86_64    2.4.0-2.fc12    fedora
        # zynjacku.x86_64       5-4.fc12        updates
 
        my %hash;
-       ## no critic (ProhibitTwoArgOpen)
+       ## no critic (ProhibitTwoArgOpen,RequireBriefOpen)
        if ( open my $fh, "$cmd |" ) {
                my $nr = 0;
                while ( my $line = <$fh> ) {
                        chomp $line;
 
+                       #debug($line);
+
                        if ( $nr > 0 ) {
 
                           # line follow the format : name version repository
                           # but if version is too long, line may be splitted 
in 2 lines !!!
                                ## no critic (ProhibitEmptyQuotes)
-                               my ( $name, $version, undef ) = split ' ', 
$line;
+                               my ( $name, $version, $orig ) = split ' ', 
$line;
                                if ( !$version ) {
-                                       print "problem line $line\n";
+
+                                       # name on first line,
+                                       # version and repository  on second line
+                                       debug("problem line $nr $line");
+                                       $line = <$fh>;
+                                       ( $version, $orig ) = split ' ', $line;
                                }
-                               else {
-                                       ## no critic 
(ProhibitEscapedMetacharacters)
-                                       $name =~ s/\..*//;    # remove arch
-                                       $name .= "-$version"; # add version
-                                       $hash{$name} = 1;
+                               if ( !$orig ) {
+
+                                       # name and version on first line
+                                       # repository on second line : must skip
+                                       $line = <$fh>;
                                }
+                               ## no critic (ProhibitEscapedMetacharacters)
+                               $name =~ s/\..*//;    # remove arch
+                               $name .= "-$version"; # add version
+                               debug("add $name");
+                               $hash{$name} = 1;
                        }
                        $nr++;
                }
@@ -161,12 +187,13 @@
 #########################################################
 # for distribution using urpmq
 # ex : Mandriva
-sub get_extra_urpmq($) {
+sub get_extra_urpmq($$) {
        my $cmd = shift @_;    # path to urpmq
+       my $arg = shift @_;
 
        # maybe use urpm perl module ?
+       $cmd .= $arg;
        debug("using $cmd");
-       $cmd .= ' --list -r';
 
        # output look like :
        # zziplib0-devel-0.13.58-1mdv2010.1
@@ -200,11 +227,12 @@
 #########################################################
 # for distribution using zypper
 # ex : Suse
-sub get_extra_zypper($) {
+sub get_extra_zypper($$) {
        my $cmd = shift @_;
+       my $arg = shift @_;
 
+       $cmd .= $arg;
        debug("using $cmd");
-       $cmd .= ' pa';
 
        # output look like :
        # i | openSUSE-11.4 OSS   | ConsoleKit       | 0.4.3-6.1 | i586
@@ -245,6 +273,31 @@
        return;
 }
 #########################################################
+# test if the given tool is available
+# and if it is forced or not
+sub testexec($$) {
+       my $path   = shift @_;
+       my $method = shift @_;
+
+       if ($path) {
+
+               # path ok
+               if ( exists $ENV{'RPMEXTRA_METHOD'} ) {
+
+                       # use method forced from env
+                       return ( $ENV{'RPMEXTRA_METHOD'} eq $method );
+               }
+               else {
+                       # normal method ok
+                       return 1;
+               }
+       }
+       else {
+               # path to tool empty
+               return 0;
+       }
+}
+#########################################################
 #
 #      main
 #
@@ -280,27 +333,31 @@
        exit;
 }
 
-my $dnf_util_path = search_in_path('dnf');
-my $yum_util_path = search_in_path('package-cleanup');
-my $yum_path      = search_in_path('yum');
-my $urpmq_path    = search_in_path('urpmq');
-my $zypper_path   = search_in_path('zypper');
+my $repoquery_path = search_in_path('repoquery');
+my $dnf_util_path  = search_in_path('dnf');
+my $yum_util_path  = search_in_path('package-cleanup');
+my $yum_path       = search_in_path('yum');
+my $urpmq_path     = search_in_path('urpmq');
+my $zypper_path    = search_in_path('zypper');
 
 ## no critic (ProhibitCascadingIfElse)
-if ($dnf_util_path) {
-       get_extra_redhat($dnf_util_path);
+if ( testexec( $repoquery_path, 'repoquery' ) ) {
+       get_repoquery( $repoquery_path, ' -q --extras' );
+}
+elsif ( testexec( $dnf_util_path, 'dnf' ) ) {
+       get_extra_redhat( $dnf_util_path, ' -q list extras' );
 }
-elsif ($yum_util_path) {
-       get_extra_cleanup($yum_util_path);
+elsif ( testexec( $yum_util_path, 'package-cleanup' ) ) {
+       get_extra_cleanup( $yum_util_path, ' -q --orphans' );
 }
-elsif ($yum_path) {
-       get_extra_redhat($yum_path);
+elsif ( testexec( $yum_path, 'yum' ) ) {
+       get_extra_redhat( $yum_path, ' -q list extras' );
 }
-elsif ($urpmq_path) {
-       get_extra_urpmq($urpmq_path);
+elsif ( testexec( $urpmq_path, 'urpmq' ) ) {
+       get_extra_urpmq( $urpmq_path, ' --list -r' );
 }
-elsif ($zypper_path) {
-       get_extra_zypper($zypper_path);
+elsif ( testexec( $zypper_path, 'zypper' ) ) {
+       get_extra_zypper( $zypper_path, ' pa' );
 }
 else {
        warning('unknown package tool');
@@ -379,10 +436,21 @@
 
 nothing
 
+=head1 ENVIRONMENT
+
+=over 8
+
+=item RPMEXTRA_METHOD
+
+for experts/developers only : allow to force the method used to get rpm
+data. It can be set to repoquery/dnf/yum/package-cleanup/urpmq/zypper
+
+=back
+
 =head1 DEPENDENCIES
 
 rpmextra depends upon rpm package managers.
-it can use yum (Redhat), urpmi (Mandriva), zypper (Suse) tools
+it can use yum/dnf (Redhat), urpmi (Mandriva), zypper (Suse) tools
 
 =head1 INCOMPATIBILITIES
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan-curses-lib.pl 
new/rpmorphan-1.19/rpmorphan-curses-lib.pl
--- old/rpmorphan-1.18/rpmorphan-curses-lib.pl  2017-12-22 09:31:31.000000000 
+0100
+++ new/rpmorphan-1.19/rpmorphan-curses-lib.pl  2018-09-14 17:45:29.000000000 
+0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmorphan-curses-lib.pl | Fri Dec 15 12:34:04 2017 
+0100 | Eric Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmorphan-curses-lib.pl | Fri Dec 15 12:34:04 2017 
+0100 | Eric Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan-lib.pl 
new/rpmorphan-1.19/rpmorphan-lib.pl
--- old/rpmorphan-1.18/rpmorphan-lib.pl 2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmorphan-lib.pl 2018-09-14 17:45:29.000000000 +0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmorphan-lib.pl | Fri Dec 15 11:37:02 2017 +0100 | 
Eric Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmorphan-lib.pl | Thu Aug 16 15:16:17 2018 +0200 | 
Eric Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -214,6 +214,8 @@
        # REQUIREFLAGS REQUIREVERSION
 
        my $suggests = ( is_set( $rh_opt, 'suggests' ) ) ? '[%{SUGGESTS},]' : 
q{};
+       my $recommends =
+         ( is_set( $rh_opt, 'recommends' ) ) ? '[%{RECOMMENDS},]' : q{};
 
        my $qf =
          ( is_set( $rh_opt, 'arch' ) )
@@ -222,7 +224,7 @@
 
        # for provides and requires : only keep names, avoid version
        my $rpm_cmd =
-"rpm -qa --queryformat 
'$qf;[%{REQUIRENAME},]$suggests;[%{PROVIDES},];[%{FILENAMES},];%{INSTALLTIME}\n'
 2>/dev/null";
+"rpm -qa --queryformat '$qf;[%{REQUIRENAME},]$suggests 
$recommends;[%{PROVIDES},];[%{FILENAMES},];%{INSTALLTIME}\n' 2>/dev/null";
        my $cache_file = '/tmp/rpmorphan.cache';
        my $fh_cache;
        my $cmd;
@@ -431,8 +433,9 @@
        import RPM2;
        my $db = RPM2->open_rpm_db();
 
-       my $flag_suggests = is_set( $rh_opt, 'suggests' );
-       my $flag_arch     = is_set( $rh_opt, 'arch' );
+       my $flag_suggests   = is_set( $rh_opt, 'suggests' );
+       my $flag_recommends = is_set( $rh_opt, 'recommends' );
+       my $flag_arch       = is_set( $rh_opt, 'arch' );
 
        debug('1 : analysis');
        my %objects;
@@ -469,6 +472,13 @@
                        push @req, @suggests;
                }
 
+               if ($flag_recommends) {
+                       my @recommends = $pkg->tag('RECOMMENDS');
+
+                       #debug("recommends for $name : " . join ' ', 
@recommends);
+                       push @req, @recommends;
+               }
+
                analyse_rpm_info(
                        $name,       \@prov,       \@req,     \@files,
                        \%objects,   $rh_provides, $rh_files, $rh_depends,
@@ -534,8 +544,9 @@
        my $db = URPM::DB::open();
        debug('1 : analysis');
 
-       my $flag_suggests = is_set( $rh_opt, 'suggests' );
-       my $flag_arch     = is_set( $rh_opt, 'arch' );
+       my $flag_suggests   = is_set( $rh_opt, 'suggests' );
+       my $flag_recommends = is_set( $rh_opt, 'recommends' );
+       my $flag_arch       = is_set( $rh_opt, 'arch' );
 
        my %objects;
        $db->traverse(
@@ -561,6 +572,12 @@
                                #debug("suggests for $name : " . join ' ', 
@suggests);
                                push @req, @suggests;
                        }
+                       if ($flag_recommends) {
+                               my @recommends = $package->recommends;
+
+                               #debug("recommends for $name : " . join ' ', 
@recommends);
+                               push @req, @recommends;
+                       }
 
                        analyse_rpm_info(
                                $name,       \@prov,       \@req,     \@files,
@@ -881,8 +898,9 @@
        return $res[0];
 }
 #########################################################
-# return true is rpm allow SUGGEST tags
-sub is_suggests() {
+# search if a tag exists
+sub is_tag($) {
+       my $searchtag = shift @_;
 
        my $cmd = 'rpm -q --querytags ';
        ## no critic ( ProhibitBacktickOperators );
@@ -890,13 +908,24 @@
        ## use critic
        foreach my $tag (@res) {
                chomp $tag;
-               if ( $tag =~ m/^SUGGESTS/ ) {
+               if ( $tag =~ m/^$searchtag/ ) {
                        return 1;
                }
        }
        return 0;
 }
 #########################################################
+# return true is rpm allow SUGGEST tags
+sub is_suggests() {
+       return is_tag('SUGGESTS');
+}
+#########################################################
+# return true is rpm allow SUGGEST tags
+sub is_recommends() {
+
+       return is_tag('RECOMMENDS');
+}
+#########################################################
 # return size of a list of rpm packages in a human format
 sub get_package_size(@) {
        my @pacs = @_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan-tk-lib.pl 
new/rpmorphan-1.19/rpmorphan-tk-lib.pl
--- old/rpmorphan-1.18/rpmorphan-tk-lib.pl      2017-12-22 09:31:31.000000000 
+0100
+++ new/rpmorphan-1.19/rpmorphan-tk-lib.pl      2018-09-14 17:45:29.000000000 
+0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmorphan-tk-lib.pl | Fri Dec 15 13:03:02 2017 
+0100 | Eric Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmorphan-tk-lib.pl | Fri Dec 15 13:03:02 2017 
+0100 | Eric Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan.1 
new/rpmorphan-1.19/rpmorphan.1
--- old/rpmorphan-1.18/rpmorphan.1      2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmorphan.1      2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RPMORPHAN 1"
-.TH RPMORPHAN 1 "2017-12-22" "perl v5.26.1" "User Contributed Perl 
Documentation"
+.TH RPMORPHAN 1 "2018-09-13" "perl v5.26.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -169,6 +173,7 @@
 \&   \-dry\-run             simulate package remove
 \&   \-fullalgo            force full algorythm
 \&   \-suggests            use suggested package as if required
+\&   \-recommends          use recommends package as if required
 \&   \-arch                work and show on full name with version and 
architecture
 \&   \-log\-file mylog      change default log file to mylog
 \&   \-use\-cache           use cache to avoid rpm query
@@ -291,9 +296,15 @@
 .IP "\fB\-suggests\fR" 8
 .IX Item "-suggests"
 some rpm version offers a meta-data dependency call suggests : it is
-for usefull but not necessary packages. if this option is set, the
+for usefull but not necessary packages (very weak dependency). if this option 
is set, the
 suggested packages are used in rpmorphan as required packages.
 The default value for this option is unset.
+.IP "\fB\-recommends\fR" 8
+.IX Item "-recommends"
+some rpm version offers a meta-data dependency call recommends : it is
+for usefull but not necessary packages(weak dependency). if this option is 
set, the
+recommended packages are used in rpmorphan as required packages.
+The default value for this option is unset.
 .IP "\fB\-arch\fR" 8
 .IX Item "-arch"
 by default, rpmorphan works on package name. this option will rpmorphan work
@@ -440,6 +451,12 @@
 .IP "display all orphaned packages, installed one month ago (or more)" 8
 .IX Item "display all orphaned packages, installed one month ago (or more)"
 rpmorphan \-\-all \-install\-time +30
+.IP "display orphaned packages but not weak dependencies" 8
+.IX Item "display orphaned packages but not weak dependencies"
+rpmorphan \-\-all \-\-recommends
+.IP "display orphaned packages but not all weak dependencies" 8
+.IX Item "display orphaned packages but not all weak dependencies"
+rpmorphan \-\-all \-\-recommends \-\-suggests
 .SH "BUGS AND LIMITATIONS"
 .IX Header "BUGS AND LIMITATIONS"
 Virtuals packages are not well (for now) taken in account. 
@@ -451,6 +468,8 @@
 .PP
 the software can only work with one version of each software : 
 we only treat the first version seen
+.PP
+the code does not use the following rpm tags : Supplements, Enhances
 .SH "INCOMPATIBILITIES"
 .IX Header "INCOMPATIBILITIES"
 not known
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan.lsm 
new/rpmorphan-1.19/rpmorphan.lsm
--- old/rpmorphan-1.18/rpmorphan.lsm    2017-12-15 12:35:35.000000000 +0100
+++ new/rpmorphan-1.19/rpmorphan.lsm    2018-09-13 19:26:41.000000000 +0200
@@ -1,7 +1,7 @@
 Begin4
 Title:          rpmorphan
-Version:        1.18
-Entered-date:   2017-12-22
+Version:        1.19
+Entered-date:   2018-09-13
 Description:    rpmorphan  finds  "orphaned"  packages  on  your system. It 
determines
                which packages have no other packages depending on their 
installation,
                and shows you a list of these packages.
@@ -10,7 +10,7 @@
 Author:         [email protected] (Eric Gerbier)
 Maintained-by:  [email protected] (Eric Gerbier)
 Primary-site:   http://rpmorphan.sourceforge.net
-               46 Ko rpmorphan-1.13.tar.gz
+               80 Ko rpmorphan-1.19.tar.gz
 Platforms:      linux, works with perl
 Copying-policy: GPL
 End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan.pl 
new/rpmorphan-1.19/rpmorphan.pl
--- old/rpmorphan-1.18/rpmorphan.pl     2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmorphan.pl     2018-09-14 17:45:29.000000000 +0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmorphan.pl | Fri Dec 15 11:37:02 2017 +0100 | 
Eric Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmorphan.pl | Thu Aug 16 15:45:21 2018 +0200 | 
Eric Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -743,7 +743,7 @@
 #      version
 #########################################################
 {
-       my $version = '1.18';
+       my $version = '1.19';
 
        sub get_version() {
                return $version;
@@ -766,6 +766,7 @@
 my $opt_use_cache;
 my $opt_clear_cache;
 my $opt_suggests;
+my $opt_recommends;
 my $opt_arch;
 
 my $opt_gui;
@@ -819,6 +820,7 @@
        'package'      => \@opt_package,
        'exclude'      => \@opt_exclude,
        'suggests'     => \$opt_suggests,
+       'recommends'   => \$opt_recommends,
        'install-time' => \$opt_install_time,
        'access-time'  => \$Opt_access_time,
        'add-keep'     => \@opt_add_keep,
@@ -855,7 +857,7 @@
        'add-keep=s',     'del-keep=s',     'keep-file=s', 'use-cache!',
        'clear-cache',    'gui!',           'tk!',         'curses!',
        'dry-run!',       'suggests!',      'arch!',       'log-file=s',
-       'debug!',
+       'debug!',         'recommends!',
 ) or pod2usage(2);
 
 if ($opt_help) {
@@ -899,6 +901,11 @@
        $opt_suggests = is_suggests();
 }
 
+# disable recommends option if rpm does not provide it
+if ($opt_recommends) {
+       $opt_recommends = is_recommends();
+}
+
 if ($opt_arch) {
        set_option( 'arch', $opt_arch );
 }
@@ -1014,6 +1021,7 @@
    -dry-run             simulate package remove
    -fullalgo            force full algorythm
    -suggests            use suggested package as if required
+   -recommends          use recommends package as if required
    -arch                work and show on full name with version and 
architecture
    -log-file mylog      change default log file to mylog
    -use-cache           use cache to avoid rpm query
@@ -1159,10 +1167,17 @@
 =item B<-suggests>
 
 some rpm version offers a meta-data dependency call suggests : it is
-for usefull but not necessary packages. if this option is set, the
+for usefull but not necessary packages (very weak dependency). if this option 
is set, the
 suggested packages are used in rpmorphan as required packages.
 The default value for this option is unset.
 
+=item B<-recommends>
+
+some rpm version offers a meta-data dependency call recommends : it is
+for usefull but not necessary packages(weak dependency). if this option is 
set, the
+recommended packages are used in rpmorphan as required packages.
+The default value for this option is unset.
+
 =item B<-arch>
 
 by default, rpmorphan works on package name. this option will rpmorphan work
@@ -1344,6 +1359,14 @@
 
 rpmorphan --all -install-time +30
 
+=item display orphaned packages but not weak dependencies
+
+rpmorphan --all --recommends
+
+=item display orphaned packages but not all weak dependencies
+
+rpmorphan --all --recommends --suggests
+
 =back
 
 =head1 BUGS AND LIMITATIONS
@@ -1358,6 +1381,8 @@
 the software can only work with one version of each software : 
 we only treat the first version seen
 
+the code does not use the following rpm tags : Supplements, Enhances
+
 =head1 INCOMPATIBILITIES
 
 not known
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphan.spec 
new/rpmorphan-1.19/rpmorphan.spec
--- old/rpmorphan-1.18/rpmorphan.spec   2017-12-15 12:47:40.000000000 +0100
+++ new/rpmorphan-1.19/rpmorphan.spec   2018-09-14 17:43:32.000000000 +0200
@@ -1,7 +1,7 @@
 %global _binary_filedigest_algorithm 1
 %global _source_filedigest_algorithm 1
 
-%define VERSION 1.18
+%define VERSION 1.19
 Summary:       List packages that have no dependencies (like deborphan)
 # The Summary: line should be expanded to about here -----^
 Summary(fr):   Liste les packages rpm orphelins (sans dependances)
@@ -177,6 +177,15 @@
 %doc %{_mandir}/man1/rpmextra.1*
 
 %changelog
+* Fri Sep 13 2018 Eric Gerbier <[email protected]> 1.19
+- (rpmorphan) add recommends option
+- (rpmdep) add recommends/suggests option
+- (rpmdep) remove warnings
+- (rpmdep) handle require with if syntax (redhat-rpm-config)
+- (rpmextra) fix problem with yum/dnf wrapping
+- (rpmextra) add repoquery method
+- (rpmextra) can force method using env RPMEXTRA_METHOD
+
 * Fri Dec 22 2017 Eric Gerbier <[email protected]> 1.18
 - (rpmorphan curses) fix error on line 860/862 rpmorphan-lib.pl (undefined 
value)
 - (rpmorphan curses) block q key on info display
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmorphanrc.sample 
new/rpmorphan-1.19/rpmorphanrc.sample
--- old/rpmorphan-1.18/rpmorphanrc.sample       2017-12-22 09:31:31.000000000 
+0100
+++ new/rpmorphan-1.19/rpmorphanrc.sample       2018-09-14 17:45:29.000000000 
+0200
@@ -1,5 +1,5 @@
 # configuration file exemple for rpmorphan
-# $Id: rpmorphan-1.18 | rpmorphanrc.sample | Wed Apr 13 11:40:31 2016 +0200 | 
Eric Gerbier  $
+# $Id: rpmorphan-1.19 | rpmorphanrc.sample | Thu Aug 16 15:16:17 2018 +0200 | 
Eric Gerbier  $
 # it can be used as 
 # - host (general) configuration file as /etc/rpmorphanrc
 # - home (user) configuration file as ~/.rpmorphanrc
@@ -26,6 +26,7 @@
 #version = 0
 #fullalgo = 0
 #suggests = 0
+#recommends = 0
 #all = 0
 #guess-perl = 0
 #guess-python = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmusage.1 
new/rpmorphan-1.19/rpmusage.1
--- old/rpmorphan-1.18/rpmusage.1       2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmusage.1       2018-09-14 17:45:29.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RPMUSAGE 1"
-.TH RPMUSAGE 1 "2017-12-22" "perl v5.26.1" "User Contributed Perl 
Documentation"
+.TH RPMUSAGE 1 "2018-09-13" "perl v5.26.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmorphan-1.18/rpmusage.pl 
new/rpmorphan-1.19/rpmusage.pl
--- old/rpmorphan-1.18/rpmusage.pl      2017-12-22 09:31:31.000000000 +0100
+++ new/rpmorphan-1.19/rpmusage.pl      2018-09-14 17:45:29.000000000 +0200
@@ -4,7 +4,7 @@
 #
 #    Copyright (C) 2006 by Eric Gerbier
 #    Bug reports to: [email protected]
-#    $Id: rpmorphan-1.18 | rpmusage.pl | Tue Jul 11 13:10:43 2017 +0200 | Eric 
Gerbier  $
+#    $Id: rpmorphan-1.19 | rpmusage.pl | Tue Jul 11 13:10:43 2017 +0200 | Eric 
Gerbier  $
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by


Reply via email to