portmaster won't reinstall rrdtool

I have munin-* installed, but due to some errors reported when running, want to rebuild all munin-* ports and update the ports that munin-* depends on.

All dependencies are current, and the ports tree is up to date as at 11:00+10H 24/6/2010

Code:
loop@riff ~ % pkg_info | grep "munin-*"
munin-common-1.4.4  Common components between a munin node and server
munin-master-1.4.4  Collector part of Munin
munin-node-1.4.4    Node-specific part of Munin

loop@riff ~ % pkg_info | grep rrdtool  
rrdtool-1.4.3       Round Robin Database Tools

loop@riff ~ % sudo portmaster -i munin-master

===>>> Currently installed version: munin-master-1.4.4
===>>> Port directory: /usr/ports/sysutils/munin-master

===>>> Gathering distinfo list for installed ports

===>>> Launching 'make checksum' for sysutils/munin-master in background
===>>> Gathering dependency list for sysutils/munin-master from ports
===>>> Starting recursive 'make config' check
===>>> Dependency check complete for sysutils/munin-master
===>  Cleaning for munin-master-1.4.4

===>  License check disabled, port has not defined LICENSE
===>  Extracting for munin-master-1.4.4
=> MD5 Checksum OK for munin-1.4.4.tar.gz.
=> SHA256 Checksum OK for munin-1.4.4.tar.gz.
===>   munin-master-1.4.4 depends on file: /usr/local/bin/perl5.10.1 - found
===>  Patching for munin-master-1.4.4
===>   munin-master-1.4.4 depends on file: /usr/local/bin/perl5.10.1 - found
===>  Applying FreeBSD patches for munin-master-1.4.4
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/Module/Build.pm - found
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/Munin/Common/Defaults.pm - found
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/mach/Digest/MD5.pm - found
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/mach/Net/SSLeay.pm - found
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/mach/RRDs.pm - not found
===>    Verifying install for /usr/local/lib/perl5/site_perl/5.10.1/mach/RRDs.pm in /usr/ports/databases/rrdtool
===>  Installing for rrdtool-1.4.3
===>   rrdtool-1.4.3 depends on file: /usr/local/bin/python2.6 - found
===>   rrdtool-1.4.3 depends on file: /usr/local/bin/perl5.10.1 - found
===>   rrdtool-1.4.3 depends on shared library: freetype.9 - found
===>   rrdtool-1.4.3 depends on shared library: cairo.2 - found
===>   rrdtool-1.4.3 depends on shared library: png.6 - found
===>   rrdtool-1.4.3 depends on shared library: xml2.5 - found
===>   rrdtool-1.4.3 depends on shared library: pangocairo-1.0.0 - found
===>   Generating temporary packing list
===>  Checking if databases/rrdtool already installed
===>   rrdtool-1.4.3 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of databases/rrdtool
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/databases/rrdtool.
*** Error code 1

Stop in /usr/ports/sysutils/munin-master.

===>>> make failed for sysutils/munin-master
===>>> Aborting update

===>>>  complete

Anyone seen this before?
 
Figure out which port requires rrdtool. Then look in it's Makefile to see which version of the rrdtool lib it's depending on. I bet it's the wrong version (ie, it didn't get a PORTVERSION bump when rrdtool was updated).

What's happening is that /usr/local/lib/rrdtool.so.X is installed. A port is looking for for /usr/local/lib/rrdtool.so.Y. So portmaster tries to build/install rrdtool ... but it's already installed. And you get stuck in a loop.

Two ways to solve it:
  1. edit the Makefile for the port that requires rrdtool, and set the correct library number in the *_DEPENDS line(s), or
  2. create a temporary symlink from /usr/local/lib/rrdtool.X to /usr/local/lib/rrdtool.Y (or whatever the lib is called)
The first option is better. If you go with the second option, be sure to remove the symlink after the update is complete.

Either way, you should submit a bug report (or send an e-mail to freebsd-ports@freebsd.org) for the port with the incorrect dependency info.
 
Other possibilities are (as dependency is on perl module):
- perl upgrade wasn't fully done (perl-after-upgrade and friends);
- rrdtool is installed using WITHOUT_PERL_MODULE (PERL_MODULE deselected in options).
 
Did you kill the process in the middle of an installation?

Go to rrdtool and do:
Code:
# make clean
# make deinstall
# make install clean

If that doesn't help, try:
Code:
# make clean
# make FORCE_PKG_REGISTER=1 install clean
 
phoenix said:
Figure out which port requires rrdtool. Then look in it's Makefile to see which version of the rrdtool lib it's depending on. I bet it's the wrong version (ie, it didn't get a PORTVERSION bump when rrdtool was updated).


Code:
pkg_info -R rrdtool-1.4.3 
Information for rrdtool-1.4.3:

Required by:
munin-master-1.4.4

Going through the Makefile:
Code:
BUILD_DEPENDS=  ${SITE_PERL}/Module/Build.pm:${PORTSDIR}/devel/p5-Module-Build \
                ${SITE_PERL}/Munin/Common/Defaults.pm:${PORTSDIR}/sysutils/munin-common \
                ${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5 \
                ${SITE_PERL}/${PERL_ARCH}/Net/SSLeay.pm:${PORTSDIR}/security/p5-Net-SSLeay \
                ${SITE_PERL}/${PERL_ARCH}/RRDs.pm:${PORTSDIR}/databases/rrdtool \
                ${SITE_PERL}/${PERL_ARCH}/Storable.pm:${PORTSDIR}/converters/p5-Storable-AMF \
                ${SITE_PERL}/DateTime/HiRes.pm:${PORTSDIR}/devel/p5-DateTime-HiRes \
                ${SITE_PERL}/Getopt/Long.pm:${PORTSDIR}/devel/p5-Getopt-Long \
                ${SITE_PERL}/HTML/Template.pm:${PORTSDIR}/www/p5-HTML-Template \
                ${SITE_PERL}/Log/Log4perl.pm:${PORTSDIR}/devel/p5-Log-Log4perl \
                ${SITE_PERL}/Text/Balanced.pm:${PORTSDIR}/textproc/p5-Text-Balanced
RUN_DEPENDS=    ${SITE_PERL}/Munin/Common/Defaults.pm:${PORTSDIR}/sysutils/munin-common \
                ${SITE_PERL}/${PERL_ARCH}/RRDs.pm:${PORTSDIR}/databases/rrdtool \
                ${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5 \
                ${SITE_PERL}/${PERL_ARCH}/Net/SSLeay.pm:${PORTSDIR}/security/p5-Net-SSLeay \
                ${SITE_PERL}/${PERL_ARCH}/Storable.pm:${PORTSDIR}/converters/p5-Storable-AMF \
                ${SITE_PERL}/DateTime/HiRes.pm:${PORTSDIR}/devel/p5-DateTime-HiRes \
                ${SITE_PERL}/Getopt/Long.pm:${PORTSDIR}/devel/p5-Getopt-Long \
                ${SITE_PERL}/HTML/Template.pm:${PORTSDIR}/www/p5-HTML-Template \
                ${SITE_PERL}/Log/Log4perl.pm:${PORTSDIR}/devel/p5-Log-Log4perl \
                ${SITE_PERL}/Text/Balanced.pm:${PORTSDIR}/textproc/p5-Text-Balanced

The only librrd.so* file on my system is librrd.so.5:
Code:
% ls -la /usr/local/lib/librrd*
-rw-r--r--  1 root  wheel  330776 Jun 24 13:44 /usr/local/lib/librrd.a
-rwxr-xr-x  1 root  wheel    1708 Jun 24 13:44 /usr/local/lib/librrd.la
lrwxr-xr-x  1 root  wheel      11 Jun 24 13:44 /usr/local/lib/librrd.so -> librrd.so.5
-rwxr-xr-x  1 root  wheel  228379 Jun 24 13:44 /usr/local/lib/librrd.so.5

I'm starting to think that it is something to do with the lack of a RRDs.pm, because from the make output:
Code:
===>   munin-master-1.4.4 depends on file: /usr/local/lib/perl5/site_perl/5.10.1/mach/RRDs.pm - not found
phoenix said:
Either way, you should submit a bug report (or send an e-mail to freebsd-ports@freebsd.org) for the port with the incorrect dependency info.
Have done - but the information is either incomplete or misunderstood

I've since found that I cannot actually uninstall rrdtool properly either, as make deinstall can't remove some components.

What I've decided to do is rebuild perl5.10.1 and all dependant ports via # portmaster -r perl-, not the ideal method (kind of hammering a nail with a sledgehammer approach) but hopefully it could work - failing that I'll rebuild the box (my least favoured approach)
 
What I've decided to do is rebuild perl5.10.1 and all dependant ports via # portmaster -r perl-, not the ideal method (kind of hammering a nail with a sledgehammer approach) but hopefully it could work - failing that I'll rebuild the box (my least favoured approach)

Replying to myself here:
Followed the instructions in UPDATING wrt upgrading perl from 5.8 to 5.10 (entry 20090328) in the fresh VM (which did already have munin and rrdttol installed) and during the upgrade process - guess what?? - rrdtool gets rebuilt more than once and then fails to install a second time.

Does this now look like a problem with the rrdtool port either not registering properly or not deinstalling prior to being reinstalled?
 
dougb@ said:
You need to install rrdtool with the perl option enabled.

I have, that's what is puzzling me:
Code:
root@riff /usr/ports/databases/rrdtool # make showconfig
===> The following configuration options are available for rrdtool-1.4.3:
     DEJAVU=off "Use DejaVu fonts (requires X11)"
     MMAP=on "Use mmap in rrd_update"
     PERL_MODULE=on "Build PERL module"
     PYTHON_MODULE=on "Build PYTHON bindings"
     RUBY_MODULE=off "Build RUBY bindings"

After some more poking around and asking questions, the issue appears to be more with rrdtool than anything else.
 
Well, I've built a new machine, and after installing rrdtool with the default options (as the previous post) I'm again seeing this @INC error from munin. Not real keen on filing a bug until I have enough bullets thanks to the response that I received last time - so any pointers?
 
loop said:
I'm again seeing this @INC error from munin.
If you upgraded perl5.8 to 5.10 this may be caused by modules path changes.. I got same trouble with some pkgs. Try to rebuild again.
 
On the first machine this was an upgrade, on the second it was a fresh install - so it's deeper than just module patch changes. there is "something" missing from rrdtool
 
Back
Top