Bug 445687

Summary: Review Request: portreserve - TCP port reservation utility
Product: [Fedora] Fedora Reporter: Tim Waugh <twaugh>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting
Target Milestone: ---Flags: j: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-07-01 14:46:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tim Waugh 2008-05-08 14:47:25 UTC
Spec URL: http://twaugh.fedorapeople.org/portreserve/portreserve.spec
SRPM URL: http://twaugh.fedorapeople.org/portreserve/portreserve-0.0.1-1.fc8.src.rpm
Description:
The portreserve program aims to help services with well-known ports that
lie in the portmap range.  It prevents portmap from a real service's port
by occupying it itself, until the real service tells it to release the
port (generally in the init script).

Comment 1 Jochen Schmitt 2008-05-08 17:34:14 UTC
Good:
+ Local build works fine
+ License look good
+ %doc section contains LICENSE file
+ Buildroot was cleaned on beginning of %install and %clean stanza

Bad:
- Rpmlint complaints on source RPM:
rpmlint portreserve-0.0.1-1.fc8.src.rpm
portreserve.src:23: W: make-check-outside-check-section make check
portreserve.src: W: strange-permission portreserve.spec 0600
- Rpmlint complaints on binary RPM:
$ rpmlint portreserve-0.0.1-1.fc8.x86_64.rpm
portreserve.x86_64: W: service-default-enabled /etc/init.d/portreserve
portreserve.x86_64: W: service-default-enabled /etc/init.d/portreserve
portreserve.x86_64: E: subsys-not-used /etc/init.d/portreserve
- Please don't use %makeinstall
- Inconsistence use of macros /var/run vs. %{_localstatedir}/run
- Please use %{_initrddir} for /etc/init.d 
- Build on mock (x86_64) failed:
make  all-am
make[1]: Entering directory `/builddir/build/BUILD/portreserve-0.0.1'
depbase=`echo src/portreserve.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc -DHAVE_CONFIG_H -I.     -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -MT
src/portreserve.o -MD -MP -MF $depbase.Tpo -c -o src/portreserve.o
src/portreserve.c &&\
        mv -f $depbase.Tpo $depbase.Po
gcc  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic   -o src/portreserve src/portreserve.o
xmlto man -o doc doc/portreserve.xml
make[1]: execvp: xmlto: Permission denied
make[1]:

- 

Comment 2 Jochen Schmitt 2008-05-08 17:44:27 UTC
The 'make check' command should be place in the %check stanza

Comment 3 Tim Waugh 2008-05-09 07:41:26 UTC
Actually there are no checks, so I've removed 'make check' altogether.

I think the build failure might be to do with a missing dependency on xmlto,
although it does look odd.  It builds fine on x86_64 here.

The service is enabled by default due to its nature.  On start-up it checks
whether any services (e.g. cups) have registered with it, and if not it
immediately exits.  If they have, it simply reserves that port until the service
is ready to start.  Once all registered services have taken their ports it exits.

In the initscript, subsys is not used -- portreserve uses a pidfile instead.

I've made changes following your suggestions.

Spec URL: http://twaugh.fedorapeople.org/portreserve/portreserve.spec
SRPM URL: http://twaugh.fedorapeople.org/portreserve/portreserve-0.0.1-2.fc8.src.rpm

Comment 4 Tim Waugh 2008-06-19 08:33:47 UTC
(In reply to comment #1)
> - Build on mock (x86_64) failed:

I just tried a mock build of portreserve-0.0.1-2.fc8 for fedora-9-x86_64 and it
built fine.

Comment 5 Jason Tibbitts 2008-06-27 22:36:02 UTC
Yes, it builds fine for me on rawhide.  I see the above three rpmlint complaints
and don't think they're significant.

Everything looks good to me.

* source files match upstream:
   16ca78b8aadb34d42a14fd2d6614e75cc7c130b81a4abfba08afd81a36913804  
   portreserve-0.0.1.tar.bz2
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text included in package.
* latest version is being packaged.
* BuildRequires are proper (none).
* compiler flags are appropriate.
* %clean is present.
* package builds in mock (rawhide, x86_64).
* package installs properly.
* debuginfo package looks complete.
* rpmlint has acceptable complaints.
* final provides and requires are sane:
   portreserve = 0.0.1-2.fc10
  =
   /bin/sh

* %check is not present; no test suite upstream.
* no shared libraries are added to the regular linker search paths.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* scriptlets OK (service setup).
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* no headers.
* no pkgconfig files.
* no static libraries.
* no libtool .la files.

APPROVED

Comment 6 Tim Waugh 2008-06-30 14:11:03 UTC
New Package CVS Request
=======================
Package Name: portreserve
Short Description: TCP port reservation utility
Owners: twaugh
Branches: F-9
InitialCC:
Cvsextras Commits: yes


Comment 7 Kevin Fenzi 2008-06-30 16:08:14 UTC
cvs done.