Bug 169716 - net-mgmt/ndpmon several problems with build and install
Summary: net-mgmt/ndpmon several problems with build and install
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Stefan Walter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-08 17:20 UTC by Fabian Wenk
Modified: 2013-06-15 22:40 UTC (History)
0 users

See Also:


Attachments
pr169716.patch (5.24 KB, patch)
2013-06-13 13:36 UTC, Fabian Wenk
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Wenk 2012-07-08 17:20:03 UTC
There are several errors in the net-mgmt/ndpmon port:

- When the MACRESOLV is set, also www/p5-libwww should be installed as dependency (this is needed during build from the /usr/ports/net-mgmt/ndpmon/work/ndpmon-1.4.0/plugins/mac_resolv/make-manuf script)

- For MACRESOLV to work (and being able to update the MAC database), the following files from /usr/ports/net-mgmt/ndpmon/work/ndpmon-1.4.0/plugins/mac_resolv/ need to be installed in /usr/local/share/ndpmon/plugins/mac_resolv/:
make-manuf manuf.tmpl wka.tmpl manuf

- Also show a note after install on how to update the local MAC database:
  cd /usr/local/share/ndpmon/plugins/mac_resolv/
  ./make-manuf
  /usr/local/etc/rc.d/ndpmonitor restart

- In the built /usr/local/sbin/ndpmon binary the default path to the config file is set to /usr/local/etc/ndpmon/ndpmon/config_ndpmon.xml instead of /usr/local/etc/ndpmon/config_ndpmon.xml

- In the file /usr/local/etc/ndpmon/config_ndpmon.xml-dist the following line should be changed to where the file is, replace:
<!DOCTYPE config_ndpmon SYSTEM "/usr/local/etc/ndpmon/ndpmon/config_ndpmon.dtd">
with:
<!DOCTYPE config_ndpmon SYSTEM "/usr/local/share/ndpmon/config_ndpmon.dtd">

- The init script does not honor the ntpmonitor_flags option in the /etc/rc.conf file, this is needed e.g. to set a different Ethernet interface with e.g. '-i em1'

Fix: 

see above.
How-To-Repeat: Install net-mgmt/ndpmon with option MACRESOLV.
Comment 1 Edwin Groothuis freebsd_committer 2012-07-08 17:20:46 UTC
Maintainer of net-mgmt/ndpmon,

Please note that PR ports/169716 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/169716

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer 2012-07-08 17:20:47 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Stefan Walter freebsd_committer 2013-04-29 12:35:16 UTC
[I'm re-sending this because Janos's e-mail address changed in the
meantime.]

Dear maintainer of net-mgmt/ndpmon,

a problem report has been submitted for your port for which your 
feedback might be required; its contents can be found at [1]. If it 
contains a patch or suggestions for a change, please send a followup to 
the PR explaining whether or not you approve it and want it to be 
committed.

Regards,
Stefan

[1]: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/169716
Comment 4 Stefan Walter freebsd_committer 2013-04-29 13:15:34 UTC
Responsible Changed
From-To: freebsd-ports-bugs->stefan

Track this while waiting for maintainer's feedback.
Comment 5 Stefan Walter freebsd_committer 2013-06-09 17:36:42 UTC
Hi Fabian,

unfortunately, there hasn't been any reply by the port's maintainer, yet.
Could you send a patch with your proposed changes?

Best regards,
Stefan
Comment 6 Fabian Wenk 2013-06-13 13:36:50 UTC
Hello Stefan

On 09.06.2013 18:36, Stefan Walter wrote:
> unfortunately, there hasn't been any reply by the port's maintainer, yet.
> Could you send a patch with your proposed changes?

Yes, I have attached a patch, which in my testing (on FreeBSD 
9.1) did fix all the build and install / uninstall of ndpmon.

Thanks to your request and looking again at this PR I created, I 
did also spot the typo I have in /etc/rc.conf. Instead of 
ntpmonitor_flags, it should be ndpmonitor_flags. :-)

But there is an other problem with ndpmon. I do not know if this 
already existed back on FreeBSD 7.4 (which I had in use when I 
created the PR). When started through the 
/usr/local/etc/rc.d/ndpmonitor script it only runs for a short 
while, sends a few e-mails and then stops. When I run it 
interactively in the shell (bash) with options, e.g. (sorry for 
the line wrapping should be on one line):
  /usr/local/sbin/ndpmon -i em1 -f 
/usr/local/etc/ndpmon/config_ndpmon.xml

Then it runs until I Ctrl-c it, but gives a lot of output. When I 
also add the ">/dev/null 2>&1 &" (from command_args=) to it, then 
it runs only for a while and terminates with:
[1]+  Broken pipe: 13         /usr/local/sbin/ndpmon -i em1 -f 
/usr/local/etc/ndpmon/config_ndpmon.xml > /dev/null 2>&1

I do not know what is going wrong here. I think stderr and stdout 
should be redirected to /dev/null, but it seems that ndpmon does 
not like this...

According to the project website [1], there is a new version 2.x 
available. It seems to be redesigned a lot. I will check that out 
and see if I can build and run it on FreeBSD.

   [1] http://ndpmon.sourceforge.net/


bye
Fabian
Comment 7 Stefan Walter freebsd_committer 2013-06-15 22:04:07 UTC
Hi Fabian,

Fabian Wenk, 13.06.13, 14:36h CEST:

> Yes, I have attached a patch, which in my testing (on FreeBSD 
> 9.1) did fix all the build and install / uninstall of ndpmon.

thanks for the patch. I wonder if there's a specific reason to remove the
line

CONFIGURE_ARGS+=--disable-mac-resolv

from the Makefile - it looks correct to explicitly disable it if the
port's option for it is disabled...?

Best regards,
Stefan
Comment 8 Fabian Wenk 2013-06-15 22:29:28 UTC
Hello Stefan

On 15.06.2013 23:04, Stefan Walter wrote:
> Fabian Wenk, 13.06.13, 14:36h CEST:
>
>> Yes, I have attached a patch, which in my testing (on FreeBSD
>> 9.1) did fix all the build and install / uninstall of ndpmon.
>
> thanks for the patch. I wonder if there's a specific reason to remove the
> line
>
> CONFIGURE_ARGS+=--disable-mac-resolv
>
> from the Makefile - it looks correct to explicitly disable it if the
> port's option for it is disabled...?

According to './configure --help' mac-resolv is disabled on 
default and also there is no '--disable-mac-resolv' listed. 
During my testing when the above line was in the Ports Makefile, 
configure did miss-recognize it as if the mac-resolv options is 
enabled and then did run the 'make-manuf' script (which needs 
p5-libwww). After removing the above line in the Makefile, it was 
doing it correctly depending on the setting of the MACRESOLV 
Ports option.


bye
Fabian
Comment 9 dfilter service freebsd_committer 2013-06-15 22:38:51 UTC
Author: stefan
Date: Sat Jun 15 21:38:43 2013
New Revision: 321019
URL: http://svnweb.freebsd.org/changeset/ports/321019

Log:
  - Fix/improve use of option MACRESOLV:
    - Register www/p5-libwww as a dependency.
    - Install missing files.
    - Print a message how to update the MAC database after installation.
  - Fix path of the configuration file.
  
  PR:		169716
  Submitted by:	Fabian Wenk <fabian@wenks.ch>
  Approved by:	maintainer timeout (>6 weeks)

Added:
  head/net-mgmt/ndpmon/pkg-message.MACRESOLV   (contents, props changed)
Modified:
  head/net-mgmt/ndpmon/Makefile
  head/net-mgmt/ndpmon/files/patch-config__ndpmon.xml.in   (contents, props changed)
  head/net-mgmt/ndpmon/files/patch-ndpmon__defs.h.in   (contents, props changed)
  head/net-mgmt/ndpmon/pkg-plist   (contents, props changed)

Modified: head/net-mgmt/ndpmon/Makefile
==============================================================================
--- head/net-mgmt/ndpmon/Makefile	Sat Jun 15 21:13:21 2013	(r321018)
+++ head/net-mgmt/ndpmon/Makefile	Sat Jun 15 21:38:43 2013	(r321019)
@@ -3,7 +3,7 @@
 
 PORTNAME=	ndpmon
 PORTVERSION=	1.4.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	net-mgmt ipv6
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-1.4/
 EXTRACT_SUFX=	.tgz
@@ -18,7 +18,7 @@ OPTIONS_DEFINE=		PY4SUITE MACRESOLV
 OPTIONS_DEFAULT=	
 
 PY4SUITE_DESC=		Depend on py-4suite-xml (for generating HTML)
-MACRESOLV_DESC=		Enable MAC Manufacturer Resolution
+MACRESOLV_DESC=		Enable MAC Manufacturer Resolution (use p5-libwww)
 
 .include <bsd.port.options.mk>
 
@@ -45,8 +45,11 @@ PORTDOCS=	INSTALL README
 
 .if ${PORT_OPTIONS:MMACRESOLV}
 CONFIGURE_ARGS+=--enable-mac-resolv
+BUILD_DEPENDS+=	p5-libwww>=6.05:${PORTSDIR}/www/p5-libwww
+RUN_DEPENDS+=	p5-libwww>=6.05:${PORTSDIR}/www/p5-libwww
+PLIST_SUB+=	MACRESOLV=""
 .else
-CONFIGURE_ARGS+=--disable-mac-resolv
+PLIST_SUB+=	MACRESOLV="@comment "
 .endif
 
 post-patch:
@@ -69,6 +72,12 @@ do-install:
 .if ${PORT_OPTIONS:MPY4SUITE}
 	${INSTALL_SCRIPT} ${WRKSRC}/create_html_table.py ${DATADIR}
 .endif
+.if ${PORT_OPTIONS:MMACRESOLV}
+	${MKDIR} ${DATADIR}/plugins/mac_resolv
+	${INSTALL_SCRIPT} ${WRKSRC}/plugins/mac_resolv/make-manuf ${DATADIR}/plugins/mac_resolv
+	${INSTALL_DATA} ${WRKSRC}/plugins/mac_resolv/*.tmpl ${DATADIR}/plugins/mac_resolv
+	${INSTALL_DATA} ${WRKSRC}/plugins/mac_resolv/manuf ${DATADIR}/plugins/mac_resolv
+.endif
 
 	${MKDIR} ${ETCDIR}
 	${INSTALL_DATA} ${WRKSRC}/config_ndpmon.xml ${ETCDIR}/config_ndpmon.xml-dist
@@ -81,5 +90,8 @@ post-install:
 	${MKDIR} ${DOCSDIR}
 	cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}
 .endif
+.if ${PORT_OPTIONS:MMACRESOLV}
+	@${CAT} ${PKGMESSAGE}.MACRESOLV
+.endif
 
 .include <bsd.port.mk>

Modified: head/net-mgmt/ndpmon/files/patch-config__ndpmon.xml.in
==============================================================================
--- head/net-mgmt/ndpmon/files/patch-config__ndpmon.xml.in	Sat Jun 15 21:13:21 2013	(r321018)
+++ head/net-mgmt/ndpmon/files/patch-config__ndpmon.xml.in	Sat Jun 15 21:38:43 2013	(r321019)
@@ -1,8 +1,13 @@
-
-$FreeBSD$
-
---- config_ndpmon.xml.in.orig
-+++ config_ndpmon.xml.in
+--- config_ndpmon.xml.in.orig	2009-08-13 11:22:21.000000000 +0200
++++ config_ndpmon.xml.in	2013-06-10 00:36:17.000000000 +0200
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="ISO-8859-1"?>
+ <?xml-stylesheet type="text/xsl" href="config.xsl" ?>
+-<!DOCTYPE config_ndpmon SYSTEM "@CONFDIR@/ndpmon/config_ndpmon.dtd">
++<!DOCTYPE config_ndpmon SYSTEM "%%PREFIX%%/share/ndpmon/config_ndpmon.dtd">
+ <config_ndpmon>
+ 	<ignor_autoconf>1</ignor_autoconf>
+ 	<syslog_facility>LOG_LOCAL1</syslog_facility>
 @@ -8,12 +8,12 @@
          <actions_low_pri>
              <sendmail>1</sendmail>

Modified: head/net-mgmt/ndpmon/files/patch-ndpmon__defs.h.in
==============================================================================
--- head/net-mgmt/ndpmon/files/patch-ndpmon__defs.h.in	Sat Jun 15 21:13:21 2013	(r321018)
+++ head/net-mgmt/ndpmon/files/patch-ndpmon__defs.h.in	Sat Jun 15 21:38:43 2013	(r321019)
@@ -1,13 +1,12 @@
-
-$FreeBSD$
-
---- ndpmon_defs.h.in.orig
-+++ ndpmon_defs.h.in
-@@ -10,11 +10,11 @@
+--- ndpmon_defs.h.in.orig	2009-08-13 11:22:21.000000000 +0200
++++ ndpmon_defs.h.in	2013-06-09 22:25:30.000000000 +0200
+@@ -9,12 +9,12 @@
+ #include "./plugins/mac_resolv/mac_resolv.h"
  #endif
  
- #define _CONFIG_PATH_ "@CONFDIR@/ndpmon/config_ndpmon.xml"
+-#define _CONFIG_PATH_ "@CONFDIR@/ndpmon/config_ndpmon.xml"
 -#define _CONFIG_DTD_PATH_ "@CONFDIR@/ndpmon/config_ndpmon.dtd"
++#define _CONFIG_PATH_ "@prefix@/etc/ndpmon/config_ndpmon.xml"
 +#define _CONFIG_DTD_PATH_ "@prefix@/share/ndpmon/config_ndpmon.dtd"
  #define _CACHE_PATH_ "@VARDATADIR@/ndpmon/neighbor_list.xml"
 -#define _CACHE_DTD_PATH_ "@VARDATADIR@/ndpmon/neighbor_list.dtd"

Added: head/net-mgmt/ndpmon/pkg-message.MACRESOLV
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/ndpmon/pkg-message.MACRESOLV	Sat Jun 15 21:38:43 2013	(r321019)
@@ -0,0 +1,10 @@
+
+*****************************************************************
+*                                                               *
+*  To update to local MAC database run the following commands:  *
+*                                                               *
+*  cd /usr/local/share/ndpmon/plugins/mac_resolv/               *
+*  ./make-manuf                                                 *
+*  /usr/local/etc/rc.d/ndpmonitor restart                       *
+*                                                               *
+*****************************************************************

Modified: head/net-mgmt/ndpmon/pkg-plist
==============================================================================
--- head/net-mgmt/ndpmon/pkg-plist	Sat Jun 15 21:13:21 2013	(r321018)
+++ head/net-mgmt/ndpmon/pkg-plist	Sat Jun 15 21:38:43 2013	(r321019)
@@ -4,8 +4,14 @@ sbin/ndpmon
 %%DATADIR%%/demopipeprogram.pl.sample
 %%DATADIR%%/neighbor_list.dtd
 %%PY%%%%DATADIR%%/create_html_table.py
+%%MACRESOLV%%%%DATADIR%%/plugins/mac_resolv/make-manuf
+%%MACRESOLV%%%%DATADIR%%/plugins/mac_resolv/manuf.tmpl
+%%MACRESOLV%%%%DATADIR%%/plugins/mac_resolv/wka.tmpl
+%%MACRESOLV%%%%DATADIR%%/plugins/mac_resolv/manuf
 var/ndpmon/neighbor_list.xml
 @dirrmtry var/ndpmon
 @dirrmtry var
+@dirrmtry %%DATADIR%%/plugins/mac_resolv
+@dirrmtry %%DATADIR%%/plugins
 @dirrmtry %%DATADIR%%
 @dirrmtry %%ETCDIR%%
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 10 Stefan Walter freebsd_committer 2013-06-15 22:38:57 UTC
State Changed
From-To: feedback->closed

Patch committed, thanks!