The following patch adds simple syslog functionality to pkg_add / pkg_delete:
each successful addition/removal will log a terse package to syslog.

Note that this uses set->print, so updates will show up as
pkg_add: Added foo->1.0 -> foo->1.1

Also comes with a config option for pkg.conf: loglevel.
I've set the default to 1, and further tweaks may happen later.
(like logging errors or repair activity, for instance).

Comments welcome, I know that some people at least will find useful to track
package activity on their machine.

It can be off by default, the "info" stuff can be changed... well, you name it.

Index: OpenBSD/AddDelete.pm
===================================================================
RCS file: /cvs/src/usr.sbin/pkg_add/OpenBSD/AddDelete.pm,v
retrieving revision 1.51
diff -u -p -r1.51 AddDelete.pm
--- OpenBSD/AddDelete.pm        17 Jul 2011 13:16:15 -0000      1.51
+++ OpenBSD/AddDelete.pm        16 Aug 2011 15:11:43 -0000
@@ -190,8 +190,23 @@ sub init
        $self->{recorder} = OpenBSD::SharedItemsRecorder->new;
        $self->{v} = 0;
        $self->{wantntogo} = $self->config->istrue("ntogo");
+       if ($self->{not}) {
+               $self->{loglevel} = 0;
+       }
+       $self->{loglevel} //= $self->config->value("loglevel") // 1;
+       if ($self->{loglevel}) {
+               require Sys::Syslog;
+               Sys::Syslog::openlog($self->{cmd}, "nofatal");
+       }
        $self->SUPER::init(@_);
        $self->{export_level}++;
+}
+
+sub syslog
+{
+       my $self = shift;
+       return unless $self->{loglevel};
+       Sys::Syslog::syslog('info', $self->f(@_));
 }
 
 sub ntogo
Index: OpenBSD/PkgAdd.pm
===================================================================
RCS file: /cvs/src/usr.sbin/pkg_add/OpenBSD/PkgAdd.pm,v
retrieving revision 1.30
diff -u -p -r1.30 PkgAdd.pm
--- OpenBSD/PkgAdd.pm   23 Jul 2011 15:04:27 -0000      1.30
+++ OpenBSD/PkgAdd.pm   16 Aug 2011 15:11:43 -0000
@@ -837,6 +837,7 @@ sub really_add
                $set->{solver}->repair_dependencies($state);
        }
        delete $state->{delete_first};
+       $state->syslog("Added #1", $set->print);
 }
 
 sub newer_has_errors
Index: OpenBSD/PkgDelete.pm
===================================================================
RCS file: /cvs/src/usr.sbin/pkg_add/OpenBSD/PkgDelete.pm,v
retrieving revision 1.20
diff -u -p -r1.20 PkgDelete.pm
--- OpenBSD/PkgDelete.pm        19 Jul 2011 05:58:33 -0000      1.20
+++ OpenBSD/PkgDelete.pm        16 Aug 2011 15:11:43 -0000
@@ -253,6 +253,7 @@ sub really_remove
                OpenBSD::Delete::delete_package($pkgname, $state);
        }
        $state->progress->next($state->ntogo);
+       $state->syslog("Removed #1", $set->print);
 }
 
 sub delete_dependencies

Reply via email to