Spec URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping.spec SRPM URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-2.05-1.fc7.src.rpm Description: The arping utility sends ARP and/or ICMP requests to the specified host and displays the replies. The host may be specified by its hostname, its IP address, or its MAC address.
Good: + Naming seems ok. + Sources matches with upstream. + License seems ok. + Package contains verbatin copy of the license. + Mock build works fine. + Rpmlint is quite on binary rpm. Bad: - Local build fails with errors: sleep 3 In file included from arping-2/arping.c:48: /usr/include/libnet.h:87:2: error: #error "byte order has not been specified, you'll need to #define either LIBNET_LIL_ENDIAN or LIBNET_BIG_ENDIAN. See the documentation regarding the libnet-config script." arping-2/arping.c:94: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token arping-2/arping.c: In function 'do_libnet_init': arping-2/arping.c:128: error: 'libnet' undeclared (first use in this function) arping-2/arping.c:128: error: (Each undeclared identifier is reported only once arping-2/arping.c:128: error: for each function it appears in.) arping-2/arping.c:138: error: 'LIBNET_LINK' undeclared (first use in this function) arping-2/arping.c: In function 'pingmac_send': arping-2/arping.c:394: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'icmp' arping-2/arping.c:394: error: 'icmp' undeclared (first use in this function) arping-2/arping.c:394: error: 'ipv4' undeclared (first use in this function) arping-2/arping.c:394: error: 'eth' undeclared (first use in this function) arping-2/arping.c:404: error: 'libnet' undeclared (first use in this function) arping-2/arping.c:411: error: 'LIBNET_IPV4_H' undeclared (first use in this function) arping-2/arping.c:412: error: 'LIBNET_ICMPV4_ECHO_H' undeclared (first use in this function) arping-2/arping.c:424: warning: passing argument 9 of 'libnet_build_ipv4' makes pointer from integer without a cast arping-2/arping.c:424: warning: passing argument 10 of 'libnet_build_ipv4' makes integer from pointer without a cast arping-2/arping.c:424: error: too many arguments to function 'libnet_build_ipv4' arping-2/arping.c:435: error: too many arguments to function 'libnet_build_ethernet' arping-2/arping.c: In function 'pingip_send': arping-2/arping.c:462: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'arp' arping-2/arping.c:462: error: 'arp' undeclared (first use in this function) arping-2/arping.c:462: error: 'eth' undeclared (first use in this function) arping-2/arping.c:474: error: 'libnet' undeclared (first use in this function) arping-2/arping.c:475: error: too many arguments to function 'libnet_build_arp' arping-2/arping.c:486: error: too many arguments to function 'libnet_build_ethernet' arping-2/arping.c: In function 'pingip_recv': arping-2/arping.c:547: error: dereferencing pointer to incomplete type arping-2/arping.c:565: error: dereferencing pointer to incomplete type arping-2/arping.c:575: error: dereferencing pointer to incomplete type arping-2/arping.c: In function 'pingmac_recv': arping-2/arping.c:614: error: 'LIBNET_IPV4_H' undeclared (first use in this function) arping-2/arping.c:616: error: dereferencing pointer to incomplete type arping-2/arping.c:617: error: dereferencing pointer to incomplete type arping-2/arping.c:619: error: dereferencing pointer to incomplete type arping-2/arping.c:623: error: dereferencing pointer to incomplete type arping-2/arping.c:634: error: dereferencing pointer to incomplete type arping-2/arping.c:636: error: dereferencing pointer to incomplete type arping-2/arping.c:640: error: dereferencing pointer to incomplete type arping-2/arping.c:645: error: dereferencing pointer to incomplete type arping-2/arping.c:649: error: dereferencing pointer to incomplete type arping-2/arping.c:655: error: dereferencing pointer to incomplete type arping-2/arping.c:659: error: dereferencing pointer to incomplete type arping-2/arping.c: In function 'main': arping-2/arping.c:910: error: 'libnet' undeclared (first use in this function) arping-2/arping.c:983: warning: passing argument 1 of 'strdup' makes pointer from integer without a cast arping-2/arping.c:1023: warning: passing argument 1 of 'strdup' makes pointer from integer without a cast arping-2/arping.c:1128: error: too few arguments to function 'libnet_get_hwaddr' make: *** [arping-2/arping] Error 1 make: *** Waiting for unfinished jobs.... Fehler: Fehler-Status beim Beenden von /var/tmp/rpm-tmp.14424 (%build) - $RPM_OPT_FLAGS was not used during the build.
Doesn't this conflict or at least cause lots of confusion with the arping tool included in iputils?
It does. I wasn't aware of the conflict. Does this package even make sense considering the iputils arping tool is already available?
It depends on you. duplicate functionality is not an issue in Fedora. But it would certainly be better if the name was not arping, maybe synscan-arping or something else. And it shouldn't conflict with existing packages. It may also happen that it doesn't have exactly the same functionalities even though it has the same name in which case it could make sense to package it.
Please do keep it, but change the name (I would go with arping-ng :) ). It has additional functionality, compared to the one already included.
Renamed package to arping-ng, hopefully this avoids any conflicts: Spec URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng.spec SRPM URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng-2.05-1.fc7.src.rpm Don't know what to do about the build failure though. Suggestions?
The correct srpm url is http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng-2.05-2.fc7.src.rpm
Please don't forget to edit the description too, next time that you modify the spec. The application is still referred to as "arping". On my test computer the package built OK in mock, too. The only issue that I see (and it is a show stoper!) is that during compile the default Fedora compiler flags are ignored. Jochen, could you please explain what did you do when you obtained the build failure? By any chance, was it a rpmbuild -bb without having libnet-devel installed ? Once compiling in mock succeeds, other build failures should not be seen, AFAIK.
Can't figure how to rename the bug ticket, so I am adding an alias. Sindre, please correct me if this was not your intent (given the rename of the spec & binary I assume it is).
OK, I need some sleep. Editing summary.
Was anyone able to reproduce the build failure as reported by Jochen Schmitt?
Maybe it is only on a specific target? In any case I suggest instead of using the Makefile which is not extremely useful, that you should just do everything by hand, along %{__cc} %{optflage} `libnet-config --defines --cflags` -o arping arping-2/arping.c `libnet-config --libs` -lpcap And then install everything by hand. I also think that it could be nice to patch the man page or use a sed substitution to also have arping-ng, at least in the name and synopsis.
Updated: - Update description to reflect name change - Add patch for manual to reflect name change - Do build and install manually, drop makefile patch Spec URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng.spec SRPM URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng-2.05-3.fc7.src.rpm
I think that arping-scan-net.sh should be in %doc. You may also want to keep the man page timestamp. For that I would have done %patch1 -p1 -b .man .... touch -r arping.8.man arping.8 .... install -D -p -m 0644 arping.8 $RPM_BUILD_ROOT%{_mandir}/man8/arping-ng.8 Otherwise it seems to basically work here.
Updated: - Add arping-scan-net.sh to %%doc - Keep timestamp on man file Spec URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng.spec SRPM URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng-2.05-4.fc7.src.rpm
The timestamps for man pages are not kept. If you want to use my solution you should also do (to regenerate the right timestamp, before patching) touch -r arping.8.man arping.8 and keep timestamp wile installing by using -p in install -D -p -m 0644 arping.8 $RPM_BUILD_ROOT%{_mandir}/man8/arping-ng.8 After adding arping-scan-net.sh to %%doc there is a bogus dependency on /bin/sh. In my opinion this is not very problematic but should be best avoided. I'd propose something along rm -rf __fedora_docs cp -p arping-scan-net.sh __fedora_docs/ chmod a-x __fedora_docs/arping-scan-net.sh .................. %doc LICENSE README __fedora_docs/arping-scan-net.sh
Updated: - Really keep timestamps on man file - Avoid /bin/sh dependency for docfile Spec URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng.spec SRPM URL: http://folk.ntnu.no/sindrb/packages/green_nyc/arping-ng-2.05-5.fc7.src.rpm
The source timestamp is not kept: $ ls -l arping-2.05.tar.gz ../SOURCES/arping-2.05.tar.gz -rw-rw-r-- 1 dumas dumas 32287 jan 28 2005 arping-2.05.tar.gz -rw-rw-r-- 1 dumas dumas 32287 mai 7 16:14 ../SOURCES/arping-2.05.tar.gz You can use wget -N or spectool -g to keep timestamp (and curl also has a similar option). I don't see any other issue.
(In reply to comment #1) > /usr/include/libnet.h:87:2: error: #error "byte order has not been specified, > you'll need to #define either LIBNET_LIL_ENDIAN or LIBNET_BIG_ENDIAN. See the > documentation regarding the libnet-config script." Seems that you are using libnet10 instead of libnet-devel (which contains libnet-1.1). Up to FC6 libnet10 and libnet-devel relationship were completely messed up. I stated it here: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=229297#c3
Ping Sindre
Ping
Review Request will be closed as FAILED, because review requestor didn't response on ping request.
*** This bug has been marked as a duplicate of bug 467157 ***