Hi,

I'm using dpb(1) with proot and a local NFS mount of /usr/ports to
keep my installed ports up to date.  Since yesterday, dpb(1) fails to
properly start with the following error:

Reading size stats...zapping old stuff...Done
Reading build stats...zapping old stuff...Done
Can't locate object method "name" via package "localhost" (perhaps you forgot 
to load "localhost"?) at /usr/ports/infrastructure/lib/DPB/Core.pm line 147.
DPB::Core::Abstract::hostname(DPB::Core=HASH(0xb4e55b5ee38)) called at 
/usr/ports/infrastructure/lib/DPB/Core.pm line 97
DPB::Core::Abstract::new(DPB::Core, localhost) called at 
/usr/ports/infrastructure/lib/DPB/Core.pm line 741
DPB::Core::new_noreg(DPB::Core, localhost) called at 
/usr/ports/infrastructure/lib/DPB/PortBuilder/Rebuild.pm line 33
DPB::PortBuilder::Rebuild::init(DPB::PortBuilder::Rebuild=HASH(0xb4e07d80838)) 
called at /usr/ports/infrastructure/lib/DPB/PortBuilder.pm line 55
DPB::PortBuilder::new(DPB::PortBuilder, DPB::State=HASH(0xb4dce0855c8)) called 
at /usr/ports/infrastructure/bin/dpb line 149


I saw the two "unbreak" CVS commits from Marc against
infrastructure/lib/DPB/Core.pm, but these don't seem to have actually
fixed the above issue.

Looking at the code, it seems that DPB::PortBuilder::Rebuild::init()
needs to modify its call to DPB::Core::new_noreg() slightly:


Index: PortBuilder/Rebuild.pm
===================================================================
RCS file: /extra/cvs/ports/infrastructure/lib/DPB/PortBuilder/Rebuild.pm,v
retrieving revision 1.4
diff -u -p -r1.4 Rebuild.pm
--- PortBuilder/Rebuild.pm      27 Jun 2018 07:07:57 -0000      1.4
+++ PortBuilder/Rebuild.pm      9 May 2019 07:27:34 -0000
@@ -20,6 +20,8 @@ use warnings;
 package DPB::PortBuilder::Rebuild;
 our @ISA = qw(DPB::PortBuilder);

+use DPB::Host;
+
 sub init
 {
        my $self = shift;
@@ -30,7 +32,7 @@ sub init
            "file:/$self->{fullrepo}", $self->{state});
        $self->{repository}{trusted} = 1;
        # this is just a dummy core, for running quick pipes
-       $self->{core} = DPB::Core->new_noreg('localhost');
+       $self->{core} = DPB::Core->new_noreg(DPB::Host->new('localhost'));
 }

 my $uptodate = {};


-- 
Kusalananda
Sweden

Reply via email to