Bug 467854 - Review Request: parprouted - Proxy ARP IP bridging daemon
Review Request: parprouted - Proxy ARP IP bridging daemon
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Gwyn Ciesla
Fedora Extras Quality Assurance
http://people.atrpms.net/~pcavalcanti...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-10-21 07:20 EDT by Paulo Roma Cavalcanti
Modified: 2016-08-14 12:26 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-01-27 03:02:28 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
limburgher: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Paulo Roma Cavalcanti 2008-10-21 07:20:40 EDT
Description of problem:

parprouted is a daemon for transparent IP (Layer 3) proxy ARP bridging.
Unlike standard bridging, proxy ARP bridging allows to bridge Ethernet
networks behind wireless nodes. Normal L2 bridging does not work between
wireless nodes because wireless does not know about MAC addresses used
in the wired Ethernet networks. Also this daemon is useful for making
transparent firewalls.

http://www.hazard.maks.net/

I have been using parprouted for allowing a guest Virtualbox OS to have a
different IP from the host OS, when a wireless connection is used.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Gwyn Ciesla 2008-10-21 08:54:03 EDT
Needs links to spec and srpm.
Comment 2 Paulo Roma Cavalcanti 2008-10-21 09:17:48 EDT
(In reply to comment #1)
> Needs links to spec and srpm.



Spec URL: http://people.atrpms.net/~pcavalcanti/specs/parprouted.spec

SRPM URL: http://people.atrpms.net/~pcavalcanti/srpms/parprouted-0.70-2.fc8.src.rpm


Description:
  
parprouted is a daemon for transparent IP (Layer 3) proxy ARP bridging.
Unlike standard bridging, proxy ARP bridging allows to bridge Ethernet
networks behind wireless nodes. Normal L2 bridging does not work between
wireless nodes because wireless does not know about MAC addresses used
in the wired Ethernet networks. Also this daemon is useful for making
transparent firewalls.

Additional info:

http://www.hazard.maks.net/
Comment 3 Paulo Roma Cavalcanti 2008-10-22 19:50:34 EDT

Practice review:

https://bugzilla.redhat.com/show_bug.cgi?id=467530
Comment 4 Gwyn Ciesla 2008-10-24 10:38:10 EDT
- MUST: rpmlint must be run on every package. The output should be posted in the review.

Clean.

- MUST: The package must be named according to the Package Naming Guidelines .

Ok.

- MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption on Package Naming Guidelines .

Ok.

- MUST: The package must meet the Packaging Guidelines .

FIX: Rename patch to parprouted-makefile.patch, tag with Patch0:
Question: What's with the real_version business?  Why not use the real version?
Question: Why no initscripts?

- MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .

OK.

- MUST: The License field in the package spec file must match the actual license.

OK.
- MUST: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package must be included in %doc.

OK.

- MUST: The spec file must be written in American English.

OK.

- MUST: The spec file for the package MUST be legible. If the reviewer is unable to read the spec file, it will be impossible to perform a review. Fedora is not the place for entries into the Obfuscated Code Contest (http://www.ioccc.org/).

OK.

- MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.

OK.

- MUST: The package must successfully compile and build into binary rpms on at least one supported architecture.

OK.

- MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch needs to have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number should then be placed in a comment, next to the corresponding ExcludeArch line. New packages will not have bugzilla entries during the review process, so they should put this description in the comment until the package is approved, then file the bugzilla entry, and replace the long explanation with the bug number. The bug should be marked as blocking one (or more) of the following bugs to simplify tracking such issues: FE-ExcludeArch-x86 , FE-ExcludeArch-x64 , FE-ExcludeArch-ppc , FE-ExcludeArch-ppc64

OK.

- MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.

OK.  Local mock rawhide build completed successfully.

- MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.

OK.

- MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. If the package has multiple subpackages with libraries, each subpackage should also have a %post/%postun section that calls /sbin/ldconfig. An example of the correct syntax for this is:

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

NA.

- MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker.

NA.

- MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. Refer to the Guidelines for examples.

OK.

- MUST: A package must not contain any duplicate files in the %files listing.

OK.

- MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.

Fix: Why set the man page executable?  Drop the 0755 from defattr, and set attr manually on the binary.

- MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} ( or $RPM_BUILD_ROOT ).

OK.

- MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines .

OK.

- MUST: The package must contain code, or permissable content. This is described in detail in the code vs. content section of Packaging Guidelines .

OK.

- MUST: Large documentation files should go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity)

NA.

- MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present.

OK.

- MUST: Header files must be in a -devel package.

NA.

- MUST: Static libraries must be in a -static package.

NA.

- MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability).

NA.

- MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package.

NA.

- MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release}

NA.

- MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec.

OK.

- MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. This is described in detail in the desktop files section of the Packaging Guidelines . If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation.

NA.

- MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time.

OK.

- MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} ( or $RPM_BUILD_ROOT ). See Prepping BuildRoot For %install for details.

OK.

- MUST: All filenames in rpm packages must be valid UTF-8.

OK.


In summary: Initscripts, permissions, version numbering.
Comment 5 Paulo Roma Cavalcanti 2008-10-24 15:22:40 EDT
Thanks for the review.

I added a missing "Requires: iproute" to the spec file and .src.rpm

parprouted has no Initscripts because it needs a fixed IP
and a pre-created Interface, typically tap0.

Generally, parprouted is called before starting Virtualbox and killed afterwards.

The version number follows upstream (the previous was 0.65):

http://hazardous-area.org/parprouted/
Comment 6 Gwyn Ciesla 2008-10-24 15:29:09 EDT
(In reply to comment #5)
> Thanks for the review.
> 
> I added a missing "Requires: iproute" to the spec file and .src.rpm

The same URLs?  And what about the permissions?

> parprouted has no Initscripts because it needs a fixed IP
> and a pre-created Interface, typically tap0.
> 
> Generally, parprouted is called before starting Virtualbox and killed
> afterwards.
> 
> The version number follows upstream (the previous was 0.65):

I see. That works.

> http://hazardous-area.org/parprouted/
Comment 7 Paulo Roma Cavalcanti 2008-10-24 16:25:38 EDT
(In reply to comment #6)
> (In reply to comment #5)
> > Thanks for the review.
> > 
> > I added a missing "Requires: iproute" to the spec file and .src.rpm
> 
> The same URLs?  And what about the permissions?

I recreated the .src.rpm with mock and now the files are owned by mockbuild:

[cascavel:~/RPMS8/lcgrpms/src] als parprouted-0.70-2.fc8.src.rpm
-rw-rw-r--    1 mockbuilmockbuil          686 Aug 10 10:18 makefile.patch
-rw-r--r--    1 mockbuilmockbuil        18844 Jan 27  2008 parprouted-0.7.tar.gz
-rw-rw-r--    1 mockbuilmockbuil         1542 Oct 24 14:13 parprouted.spec


SRPM: http://people.atrpms.net/~pcavalcanti/srpms/parprouted-0.70-2.fc8.src.rpm

SPEC: http://people.atrpms.net/~pcavalcanti/specs/parprouted.spec
Comment 8 Paulo Roma Cavalcanti 2008-10-25 12:52:43 EDT
I am adding two scripts to help a user to use parprouted.

parprouted-up.sh and parprouted-down.sh 

Since parprouted does not support dhcp and is intended
to be used for wireless networks, I think it is better not
to try to start a service automatically.

Also, I did not understand what you mean by "permissions" problems,
because all files in the resulting rpm have the correct permissions.

I thought you were meaning, maybe, the permissions of the files in the .src.rpm,
but these will change when built using koji, anyaway.

Spec URL: http://orion.lcg.ufrj.br/RPMS/SPECS/parprouted.spec

SRPM URL: http://orion.lcg.ufrj.br/RPMS/src/parprouted-0.70-3.fc8.src.rpm

Any additional comment is really welcome.
Comment 9 Paulo Roma Cavalcanti 2008-10-25 19:40:22 EDT
I made another review,
but this one required some modifications
in the spec file, because the packager suppressed
the generation of the examples. In my opinion,
examples should always be supplied, unless there
is a good reason for not packaging them.

https://bugzilla.redhat.com/show_bug.cgi?id=464074
Comment 10 Gwyn Ciesla 2008-10-28 09:28:36 EDT
By permissions, I am referring to the permissions of the files owned by the package:

%files
%defattr(-, root, root, 0755)
%doc CHANGELOG COPYING README
%{_bindir}/%{name}*
%{_mandir}/man8/%{name}.8*

What I'm asking is, do you really want parprouted to be executable by root?

If not, :

%files
%defattr(0744, root, root, -)
%doc CHANGELOG COPYING README
%{_bindir}/%{name}*
%{_mandir}/man8/%{name}.8*
Comment 11 Gwyn Ciesla 2008-10-28 09:40:02 EDT
(In reply to comment #9)
> I made another review,
> but this one required some modifications
> in the spec file, because the packager suppressed
> the generation of the examples. In my opinion,
> examples should always be supplied, unless there
> is a good reason for not packaging them.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=464074

I'll reserve comment until a full review is done.
Comment 12 Paulo Roma Cavalcanti 2008-10-28 11:50:32 EDT
(In reply to comment #10)
> By permissions, I am referring to the permissions of the files owned by the
> package:
>
> %files
> %defattr(-, root, root, 0755)


I suppose this statement means:

files: (-) keep original file permissions (mode)
owner:  root
group:  root
directories: 755 (default permission or "mode" for directories)


http://rpm5.org/docs/max-rpm.pdf (page 192)


> %doc CHANGELOG COPYING README
> %{_bindir}/%{name}*
> %{_mandir}/man8/%{name}.8*
>
> What I'm asking is, do you really want parprouted to be executable by root?
>
> If not, :
>
> %files
> %defattr(0744, root, root, -)

This statement would set 744 for all files of the package.
Therefore, all files would have the execution bit on for root (the owner).

Am I missing something?
Comment 13 Gwyn Ciesla 2008-10-28 12:07:01 EDT
Sorry, I meant:

%files
%defattr(-, root, root, -)
%doc CHANGELOG COPYING README
%attr(744,root,root,-)%{_bindir}/%{name}*
%{_mandir}/man8/%{name}.8*
Comment 14 Paulo Roma Cavalcanti 2008-10-28 13:03:35 EDT
(In reply to comment #13)
> Sorry, I meant:
> 
> %files
> %defattr(-, root, root, -)
> %doc CHANGELOG COPYING README
> %attr(744,root,root,-)%{_bindir}/%{name}*
> %{_mandir}/man8/%{name}.8*

I can change it, but this produces exactly the
same result as using (-,root, root, 0755). 
The directories were already 755.

I also finished the review of the cddlib package.

https://bugzilla.redhat.com/show_bug.cgi?id=464074

and I cannot go any further. It would be good to have
you opinion there.

Thanks.
Comment 15 Gwyn Ciesla 2008-10-28 13:33:23 EDT
So it does.  Never mind. :)
Comment 16 Paulo Roma Cavalcanti 2008-10-29 12:51:16 EDT
Another practice review: tcl-mysqltcl

The person who submitted it does not have a sponsor yet, though.

https://bugzilla.redhat.com/show_bug.cgi?id=466047

Thanks.
Comment 17 Paulo Roma Cavalcanti 2008-10-30 08:31:43 EDT
Hi, Jon

the owner of tcl-mysqltcl have posted
another .src.rpm, which I think is adequate,
based on the discussion we had there.
Should I make a final evaluation of tcl-mysqltcl, 
or this is not necessary?


I have also oppened a Fedora account (user roma).
Can you add your name there as my sponsor?

Thanks.
Comment 18 Gwyn Ciesla 2008-10-30 08:44:00 EDT
I think I've seen enough evidence that you're on the right track, and your package is ready, so

APPROVED

and I've sponsored your account.

Go ahead and import and build, and ping me with any questions.

Also feel free to go back to any of the practice reviews and work them to completion, since you can now review officially and approve once ready.

I'd also advise doing reviews for others regularly, it's good practice and a great way to learn.
Comment 19 Paulo Roma Cavalcanti 2008-10-30 09:55:23 EDT
Hi, Jon

no doubt that the revision process, of even apparently simple
packages, is not as easy as I thought it would be.
Furthermore, the quick response of several other packages
is really amazing. 

I have submitted, some time ago, an interesting python package
called pygle:

https://bugzilla.redhat.com/show_bug.cgi?id=468298

Would you mind taking a look at it?

Thanks for you patience and guidance.
Comment 20 Gwyn Ciesla 2008-10-30 09:59:02 EDT
Sure, want to take a look at:
https://bugzilla.redhat.com/show_bug.cgi?id=452108

cfdg, the dep, is just hitting F-9 now.
Comment 21 Paulo Roma Cavalcanti 2008-10-31 14:17:19 EDT
Thanks, Jon

here it is the updated URL (either one is good).

SRPM URL: http://orion.lcg.ufrj.br/RPMS/src/parprouted-0.70-3.fc8.src.rpm
         http://people.atrpms.net/~pcavalcanti/srpms/parprouted-0.70-3.fc8.src.rpm



New Package CVS Request
=======================
Package Name: parprouted
Short Description: Proxy ARP IP bridging daemon
Owners: roma
Branches: F-8 F-9
Comment 22 Kevin Fenzi 2008-11-01 13:34:01 EDT
cvs done.
Comment 23 Paulo Roma Cavalcanti 2008-11-01 18:40:03 EDT
Hi, 


I built the package and used bodhi for moving it to testing:


http://koji.fedoraproject.org/koji/userinfo?packageOrder=-blocked&userID=866&buildOrder=-completion_time&buildStart=0#packagelist


However, I did understand why there is only one tag "dist f-8". What does this mean? 

My previous CVS Request did not include the devel (F10) branch. Although I could build parprouted for F10, I could not send it for testing. Should I do another CVS Request for F10? Use make tag?

Finally, what is the rule for moving a package from testing to stable? Could it have gone to stable directly?

Thanks.
Comment 24 Itamar Reis Peixoto 2008-11-02 07:58:36 EST
when you run fedora-cvs parprouted the directory F-10 is created ?

if yes, then I belive you will able to push updates in bodhi after F10 released.

someone will notify when bodhi start accepting updates for F10

if not, then you need to ask cvs for F-10
Comment 25 Gwyn Ciesla 2008-11-03 10:03:30 EST
(In reply to comment #24)
> when you run fedora-cvs parprouted the directory F-10 is created ?
> 
> if yes, then I belive you will able to push updates in bodhi after F10
> released.
> 
> someone will notify when bodhi start accepting updates for F10

Should be right around F-10 GA.

> if not, then you need to ask cvs for F-10
Comment 26 Nicolas Chauvet (kwizart) 2009-01-26 18:52:40 EST
it seems that the package is in F-10 and built in F-8/F-9
Can this bug be closed ?

Note You need to log in before you can comment on or make changes to this bug.