Bug 195303 - (perl-POE) Review Request: perl-POE
Review Request: perl-POE
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jason Tibbitts
Fedora Package Reviews List
:
: 195301 (view as bug list)
Depends On: perl-Event
Blocks: FE-ACCEPT
  Show dependency treegraph
 
Reported: 2006-06-14 14:20 EDT by Chris Weyl
Modified: 2009-11-02 23:43 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-06-15 17:00:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Chris Weyl 2006-06-14 14:20:07 EDT
Spec URL: http://home.comcast.net/~ckweyl/perl-POE.spec
SRPM URL: http://home.comcast.net/~ckweyl/perl-POE-0.3501-0.fc5.src.rpm

Description: 

POE is a framework for cooperative, event driven multitasking in Perl. Other
languages have similar frameworks. Python has Twisted. TCL has "the event
loop".

POE originally was developed as the core of a persistent object server and
runtime environment. It has evolved into a general purpose multitasking and
networking framework, encompassing and providing a consistent interface to
other event loops such as Event and the Tk and Gtk toolkits.
Comment 1 Chris Weyl 2006-06-14 14:22:32 EDT
*** Bug 195301 has been marked as a duplicate of this bug. ***
Comment 2 Jason Tibbitts 2006-06-14 16:26:58 EDT
"GPL or Artistic" is more standard for License:.

Note that BR: perl is not required, and ExtUtils::MakeMaker, IO::Poll and
Term::Cap are all part of the base perl package so they aren't required either.

The %description is a bit wordy at 32 lines, but the digikamimageplugins package
has 49 lines of description so I guess it isn't much of a problem.

You might want to clean up the unused stuff in the %files section.

Everything builds in mock (x86_64, development); rpmlint says the following:

E: perl-POE useless-explicit-provides perl(POE::Kernel)
E: perl-POE useless-explicit-provides perl(POE::Loop::Tk)

I think rpmlint is a bit off here; there are no explicit Provides: in the spec;
RPM is just finding both versioned and unversioned dependencies from different
files.  (Loop::Tk comes from both Loop/Tk.pm and Loop/TkActiveState.pm.)  I
don't think it's worth trying to filter these.

Review:
* package meets naming and packaging guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* dist tag is present.
* build root is correct.
* license field matches the actual license.
* license is open source-compatible.  License text not included upstream.
* source files match upstream:
   67eacd47c8d7c05a5f5a119af220de30  POE-0.3501.tar.gz
* latest version is being packaged.
* BuildRequires are proper.
* package builds in mock (x86_64, development).
* rpmlint has only ignorable complaints.
O final provides and requires are sane (duplicated dependencies come from RPM):
   perl(POE) = 0.3501
   perl(POE::API::Ctl) = 1903
   perl(POE::API::ResLoader) = 1903
   perl(POE::Component) = 1903
   perl(POE::Component::Client::TCP) = 1957
   perl(POE::Component::Server::TCP) = 1956
   perl(POE::Driver) = 1903
   perl(POE::Driver::SysRW) = 1903
   perl(POE::Filter) = 1955
   perl(POE::Filter::Block) = 1920
   perl(POE::Filter::Grep) = 1953
   perl(POE::Filter::HTTPD) = 1958
   perl(POE::Filter::Line) = 1920
   perl(POE::Filter::Map) = 1953
   perl(POE::Filter::RecordBlock) = 1920
   perl(POE::Filter::Reference) = 1947
   perl(POE::Filter::Stackable) = 1963
   perl(POE::Filter::Stream) = 1920
   perl(POE::Kernel)
   perl(POE::Kernel) = 1938
   perl(POE::Loop) = 1903
   perl(POE::Loop::Event) = 1903
   perl(POE::Loop::Gtk) = 1903
   perl(POE::Loop::IO_Poll) = 1903
   perl(POE::Loop::PerlSignals) = 1903
   perl(POE::Loop::Select) = 1903
   perl(POE::Loop::Tk)
   perl(POE::Loop::Tk) = 1903
   perl(POE::Loop::TkActiveState) = 1914
   perl(POE::Loop::TkCommon) = 1924
   perl(POE::NFA) = 1946
   perl(POE::Pipe) = 1903
   perl(POE::Pipe::OneWay) = 1903
   perl(POE::Pipe::TwoWay) = 1903
   perl(POE::Queue) = 1903
   perl(POE::Queue::Array) = 1903
   perl(POE::Resource) = 1903
   perl(POE::Resources) = 1903
   perl(POE::Resources::Aliases) = 1903
   perl(POE::Resources::Controls) = 1903
   perl(POE::Resources::Events) = 1903
   perl(POE::Resources::Extrefs) = 1903
   perl(POE::Resources::FileHandles) = 1903
   perl(POE::Resources::SIDs) = 1903
   perl(POE::Resources::Sessions) = 1903
   perl(POE::Resources::Signals) = 1954
   perl(POE::Resources::Statistics) = 1911
   perl(POE::Session) = 1947
   perl(POE::Wheel) = 1903
   perl(POE::Wheel::Curses) = 1903
   perl(POE::Wheel::FollowTail) = 1903
   perl(POE::Wheel::ListenAccept) = 1903
   perl(POE::Wheel::ReadLine) = 1947
   perl(POE::Wheel::ReadLine::Keymap)
   perl(POE::Wheel::ReadWrite) = 1947
   perl(POE::Wheel::Run) = 1916
   perl(POE::Wheel::SocketFactory) = 1903
   perl-POE = 0.3501-0.fc6
  - 
   perl >= 0:5.00503
   perl(:MODULE_COMPAT_5.8.8)
   perl(Carp)
   perl(Curses)
   perl(Errno)
   perl(File::Spec)
   perl(HTTP::Date)
   perl(HTTP::Request)
   perl(HTTP::Response)
   perl(HTTP::Status)
   perl(IO::Handle)
   perl(IO::Poll)
   perl(IO::Socket)
   perl(POE)
   perl(POE::API::ResLoader)
   perl(POE::Driver::SysRW)
   perl(POE::Filter)
   perl(POE::Filter::Line)
   perl(POE::Kernel)
   perl(POE::Loop::PerlSignals)
   perl(POE::Loop::TkCommon)
   perl(POE::Pipe)
   perl(POE::Resource::Controls)
   perl(POE::Resources)
   perl(POE::Session)
   perl(POE::Wheel::ReadWrite)
   perl(POE::Wheel::SocketFactory)
   perl(POSIX)
   perl(Socket)
   perl(Symbol)
   perl(Sys::Hostname)
   perl(Term::Cap)
   perl(Term::ReadKey)
   perl(Tk)
   perl(Tk) >= 800.021
   perl(URI)
   perl(bytes)
   perl(strict)
   perl(vars)
* no shared libraries are present.
* package is not relocatable.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* %clean is present.
* %check is present and all tests pass (noisily, but without failures)
   All tests successful, 68 tests skipped.
   Files=141, Tests=3271, 124 wallclock secs (11.83 cusr +  3.19 csys = 15.02 CPU)
* no scriptlets present.
* code, not content.
* documentation is small, so no -docs subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* no headers.
* no pkgconfig files.
* no libtool .la droppings.
* not a GUI app.

APPROVED; don't forget to bump Release: to 1 when you check in.
Comment 3 Chris Weyl 2006-06-15 17:00:45 EDT
License tag tweaked as recommended.

Imported and built for FC-[45], devel!
Comment 4 Ville Skyttä 2006-06-15 17:12:46 EDT
(In reply to comment #2)
> RPM is just finding both versioned and unversioned dependencies from different
> files.  (Loop::Tk comes from both Loop/Tk.pm and Loop/TkActiveState.pm.)  I
> don't think it's worth trying to filter these.

The problem is that the unversioned ones trump the versioned ones and make it
impossible to have any meaningful versioned dependencies to those in other
packages as the unversioned provisions satisfy all versioned dependencies.  I
don't see why the unversioned ones should not be filtered.  There are several
cases where this is already being done in the tree.
Comment 5 Jason Tibbitts 2006-06-15 18:11:47 EDT
I'm afraid I don't understand.  Are you saying that an unversioned Provides: A
will satisfy Requires: A >= 99?  That is rather surprising to me, and would seem
to be yet another bug.

I wonder just how many rpm bugs we're expected to work around?  At some point it
would seem like a better bet to just get them fixed.

Chris, if you need help in filtering these, just let me know.
Comment 6 Ville Skyttä 2006-06-16 01:57:49 EDT
(In reply to comment #5)
> Are you saying that an unversioned Provides: A will satisfy Requires: A >= 99?

Yes.
Comment 7 Paul Howarth 2006-06-16 06:32:43 EDT
(In reply to comment #6)
> (In reply to comment #5)
> > Are you saying that an unversioned Provides: A will satisfy Requires: A >= 99?
> 
> Yes.

It'll also satisfy Requires: A < 99 at the same time :-)

An unversioned provide is like providing all possible versions; it's like a
wildcard version.
Comment 8 Chris Weyl 2006-06-16 11:49:59 EDT
Ok, sounds like they should be filtered.

(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > Are you saying that an unversioned Provides: A will satisfy Requires: A >= 99?
> > 
> > Yes.
> 
> It'll also satisfy Requires: A < 99 at the same time :-)
> 
> An unversioned provide is like providing all possible versions; it's like a
> wildcard version.

How is this not a bug in rpm itself?
Comment 9 Chris Weyl 2006-06-16 12:05:16 EDT
Wait -- ok, something weird is happening.  I see in the latest repoclosure
reports that perl-POE is failing with an unsatisfied requires:

----
Summary of broken packages in fedora-extras-5-i386:
----------------------------------------------------------------------
   perl-POE-0.3501-2.fc5.noarch  requires  perl(POE::Resource::Controls)
----

Yet perl-POE clearly provides perl(POE::Resources::Controls) = 1903.

What's going on here?
Comment 10 Ville Skyttä 2006-06-17 06:52:07 EDT
(In reply to comment #8)
> How is this not a bug in rpm itself?

If you think it's a rpm bug, report it.

(In reply to comment #9)
>    perl-POE-0.3501-2.fc5.noarch  requires  perl(POE::Resource::Controls)
> Yet perl-POE clearly provides perl(POE::Resources::Controls) = 1903.

Note "Resource" vs "Resources".
Comment 11 Steve Traylen 2009-11-01 14:00:08 EST
Package Change Request
======================
Package Name: perl-POE
New Branches: EL-4 EL-5
Owners: stevetraylen 


Response from owner of perl-POE in Fedora:

I actually don't use POE that much anymore....  if you want to take
them over for both Fedora and EPEL, they'd probably benefit from it :)
Comment 12 Kevin Fenzi 2009-11-02 23:43:47 EST
cvs done.

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