Thank you very much for your previous comments, Kilian.  I have uploaded a
new package:

http://mentors.debian.net/ <http://mentors.debian.net/package/ndpmon>
package/ndpmon <http://mentors.debian.net/package/ndpmon>




> While reading into your package I'm wondering about:
>
> 1.) ndpmon.init:
>        - DAEMON and INIT must be defined in /etc/default/ndpmon. I doubt
> that's a good default. You should define fall-back defaults in the init
> script too
>
>        - you background start-stop-daemon during starting yet try to
> evaluate
> its return value. I doubt that's a good combination. Moreover you have a
> added sleep without any useful value IMHO as the return code is pulled
> before the sleep anyway.
>
>        - during stop you unconditionally cat a PIDFILE without checking it
> exists and run kill on the outcome. A better solution would be something
> like PID=$(ps -C $DAEMON -o pid=) and check if that's not empty and kill
> that (or check if that's equal to the PIDFILE and kill it then).
>
>        - status should check PIDFILE and/or something like the ps -C
> $DAEMON
> and report based on that.
>
>          I'd recommend you check the manpage of ps for further options you
> may
> see fit.
>
>        - exit $? at the end is very likely to not match what you intended
> to
> use as exit status. Maybe you should
>

I'm still not sure about the INIT script.  Before, the INIT script that was
in the original source code did not support status or force-reload.  So I
basically copied the script and added those sections.  Now, I tried to
incorporate the suggestions above, which results in an INIT script that is
different from the one in the source code, but I'm not sure of how good of a
job I did.  Any more suggestions would be appreciated.


2.) Patches:
>        - there is no need to modify Makefile to delete config.log and
> config.status unless you want to report this back to upstream (which is
> not indicated in the header). From a Debian POV debian/clean and/or
> debian/rules will do (and should be used preferred)
>
>        - I'm not sure install.patch is needed. You can as well use
> debian/tmp
> as DESTDIR and move files from there using dh_install I guess. Reporting
> the fixes back upstream seem to make sense yet there again is no
> indication this was done.
>

I removed the patch to the Makefile and added a debian/clean file.  Also,
the installation is now handled by the files debian/ndpmon.dirs and
debian/install.



>        - spelling errors - again look useful, but please make sure they
> don't
> remain in Debian's archive alone but are included upstream.
>

I plan to send the spelling patches upstream.  I was holding off until I had
a better idea of the status of getting the program into debian, and all of
the changes that were necessary so I could just submit things once.



> 3.) debian/rules template header can be omited.
>

Done.



>    as autotools-dev are already in Build-Depends (which is good) they
> should also be activated in debian/rules (using --with autotools_dev)
>

Done.  I also added -with autoreconf.



> 4.) Fetching http://standards.ieee.org/regauth/oui/oui_public.txt.
>
>    OUCH! There is no internet access guaranteed during building a
> package. That means this is quite likely to fail.
>
>    Moreover:
> Fetching http://www.cavebear.com/CaveBear/Ethernet.txt
> Error fetching http://www.cavebear.com/CaveBear/Ethernet/Ethernet.txt:
> 404 Not Found
>
>    N.b. there is an attempt to make a shared package for that. See e.g.
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481299 for details and
> more bugs numbers. Please try to use that package (once avail) or an
> offline copy in the meantime.
>

The purpose of make-manuf is to provide an up-to-date copy of manuf, which
the program uses to match MAC addresses with manufacturers.  If Internet
access is not available during the build, I thought it would be better to
create an up-to-date copy of manuf offline, and simply produce a patch to
bring the copy in the original source code up-to-date, and make sure
make-manuf doesn't run.



> 5.) Rebuilding your package twice in a row produces a Debian patch:
> dpkg-source: info: local changes stored in
> ndpmon-1.4.0/debian/patches/debian-changes-1.4.0-1, the modified files
> are:
>  ndpmon-1.4.0/Makefile
>  ndpmon-1.4.0/config_ndpmon.xml
>  ndpmon-1.4.0/ndpmon.sh
>  ndpmon-1.4.0/ndpmon_defs.h
>  ndpmon-1.4.0/neighbor_list.xml
>  ndpmon-1.4.0/plugins/countermeasures/Makefile
>  ndpmon-1.4.0/plugins/mac_resolv/Makefile
> dpkg-source: info: building ndpmon in ndpmon_1.4.0-1.debian.tar.gz
>

I believe this problem is solved with the use of the debian/clean file.



> 6.) You still ship source files in your binary package like:
> ./usr/lib/ndpmon/plugins/mac_resolv/mac_resolv.c
> ./usr/lib/ndpmon/plugins/mac_resolv/mac_resolv.h
> ./usr/lib/ndpmon/plugins/mac_resolv/Makefile.in
> ./usr/lib/ndpmon/plugins/countermeasures/icmp_lib_nd.c
> ./usr/lib/ndpmon/plugins/countermeasures/countermeasures.c
> ./usr/lib/ndpmon/plugins/countermeasures/countermeasures.h
> ./usr/lib/ndpmon/plugins/countermeasures/icmp_lib_nd.h
> ./usr/lib/ndpmon/plugins/countermeasures/icmp_lib.c
> ./usr/lib/ndpmon/plugins/countermeasures/Makefile.in
> ./usr/lib/ndpmon/plugins/countermeasures/icmp_lib.h
> ./usr/lib/ndpmon/plugins/countermeasures/countermeasures_on_link.h
> ./usr/lib/ndpmon/plugins/countermeasures/countermeasures_guard.h
>

This problem is solved with the use of the debian/install file.



John R. Baskwill, jr...@psu.edu
Systems Analyst, Information Technology Services
Penn State Harrisburg
W303 Olmsted Building
777 West Harrisburg Pike
Middletown, PA 17057-4898
Phone: 717-948-6268
Fax: 717-948-6535

Reply via email to