Spec URL: http://declera.com/~yaneti/Mojolicious/Mojolicious.spec SRPM URL: http://declera.com/~yaneti/Mojolicious/Mojolicious-0.999925-1.fc14.src.rpm Description: Back in the early days of the web there was this wonderful Perl library called CGI, many people only learned Perl because of it. It was simple enough to get started without knowing much about the language and powerful enough to keep you going, learning by doing was much fun. While most of the techniques used are outdated now, the idea behind it is not. Mojolicious is a new attempt at implementing this idea using state of the art technology.
CC perl-devel for anyone interested. Packaged just for evaluation purposes. It was quite simple and pleasant experience
At first glance, you should remove the explicit Requires: lines - those modules are only necessary for building - not at runtime. I'd also refine the name slightly - either perl-Mojolicious (since it's not really an end-user app - more for developers who are likely to look for perl-Stuff), or all lower case mojolicious. Otherwise, it looks pretty good to me.
SPEC: http://declera.com/~yaneti/perl-Mojolicious/perl-Mojolicious.spec SRPM: http://declera.com/~yaneti/perl-Mojolicious/perl-Mojolicious-0.999925-1.fc14.src.rpm
+ source files match upstream. ee6d1120331e0e0762cce773e7d816a4 Mojolicious-0.999925.tar.gz + 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. Artistic 2.0 + license is open source-compatible. + license text included. + latest version is being packaged. + BuildRequires are proper. + compiler flags are appropriate. + %clean is present. + package builds in mock (dist-f14-perltest) http://koji.fedoraproject.org/koji/taskinfo?taskID=2241132 + package installs properly. + rpmlint has no complaints: perl-Mojolicious.noarch: I: checking perl-Mojolicious.noarch: I: checking-url http://mojolicious.org/ (timeout 10 seconds) perl-Mojolicious.src: I: checking perl-Mojolicious.src: I: checking-url http://mojolicious.org/ (timeout 10 seconds) perl-Mojolicious.src: I: checking-url http://www.cpan.org/authors/id/K/KR/KRAIH/Mojolicious-0.999925.tar.gz (timeout 10 seconds) 2 packages and 0 specfiles checked; 0 errors, 0 warnings. + final provides and requires are sane: perl(Mojo) = 0.999925 perl(Mojo::Asset) perl(Mojo::Asset::File) perl(Mojo::Asset::Memory) perl(Mojo::Base) perl(Mojo::ByteStream) perl(Mojo::Client) perl(Mojo::Command) perl(Mojo::Command::Cgi) perl(Mojo::Command::Daemon) perl(Mojo::Command::DaemonPrefork) perl(Mojo::Command::Fastcgi) perl(Mojo::Command::Generate) perl(Mojo::Command::Generate::App) perl(Mojo::Command::Generate::Gitignore) perl(Mojo::Command::Generate::Makefile) perl(Mojo::Command::Get) perl(Mojo::Command::Psgi) perl(Mojo::Commands) perl(Mojo::Command::Test) perl(Mojo::Command::Version) perl(Mojo::Content) perl(Mojo::Content::MultiPart) perl(Mojo::Content::Single) perl(Mojo::Cookie) perl(Mojo::CookieJar) perl(Mojo::Cookie::Request) perl(Mojo::Cookie::Response) perl(Mojo::Date) perl(Mojo::DOM) perl(Mojo::Exception) perl(Mojo::Filter) perl(Mojo::Filter::Chunked) perl(Mojo::Headers) perl(Mojo::HelloWorld) perl(Mojo::Home) perl(Mojo::IOLoop) perl(Mojo::JSON) perl(Mojo::JSON::_Bool) perl(Mojolicious) = 0.999925 perl-Mojolicious = 0.999925-1.fc14 perl(Mojolicious::Command::Generate) perl(Mojolicious::Command::Generate::App) perl(Mojolicious::Command::Generate::LiteApp) perl(Mojolicious::Command::Inflate) perl(Mojolicious::Command::Routes) perl(Mojolicious::Commands) perl(Mojolicious::Controller) perl(Mojolicious::Lite) perl(Mojolicious::Plugin) perl(Mojolicious::Plugin::AgentCondition) perl(Mojolicious::Plugin::Charset) perl(Mojolicious::Plugin::DefaultHelpers) perl(Mojolicious::Plugin::EplRenderer) perl(Mojolicious::Plugin::EpRenderer) perl(Mojolicious::Plugin::HeaderCondition) perl(Mojolicious::Plugin::I18n) perl(Mojolicious::Plugin::I18n::_Handler) perl(Mojolicious::Plugin::JsonConfig) perl(Mojolicious::Plugin::PodRenderer) perl(Mojolicious::Plugin::PoweredBy) perl(Mojolicious::Plugin::RequestTimer) perl(Mojolicious::Plugins) perl(Mojolicious::Plugin::TagHelpers) perl(Mojo::Loader) perl(Mojo::Log) perl(Mojo::Message) perl(Mojo::Message::Request) perl(Mojo::Message::Response) perl(Mojo::Parameters) perl(Mojo::Path) perl(Mojo::Server) perl(Mojo::Server::CGI) perl(Mojo::Server::Daemon) perl(Mojo::Server::Daemon::Prefork) perl(Mojo::Server::FastCGI) perl(Mojo::Server::PSGI) perl(Mojo::Server::PSGI::_Handle) perl(Mojo::Stateful) perl(Mojo::Template) perl(Mojo::Transaction) perl(Mojo::Transaction::HTTP) perl(Mojo::Transaction::Single) perl(Mojo::Transaction::WebSocket) perl(Mojo::Upload) perl(Mojo::URL) perl(MojoX::Controller) perl(MojoX::Dispatcher::Routes) perl(MojoX::Dispatcher::Routes::Controller) perl(MojoX::Dispatcher::Static) perl(MojoX::Renderer) perl(MojoX::Routes) perl(MojoX::Routes::Match) perl(MojoX::Routes::Pattern) perl(MojoX::Session::Cookie) perl(MojoX::Session::Cookie::Controller) perl(MojoX::Types) perl(Test::Mojo) perl(Test::Mojo::Server) = perl(base) perl(Carp) perl(constant) perl(Cwd) perl(Data::Dumper) perl(Digest::MD5) perl(Encode) perl(Errno) perl(Fcntl) perl(File::Basename) perl(File::Copy) perl(File::Path) perl(File::Spec) perl(File::stat) perl(FindBin) perl(Getopt::Long) perl(I18N::LangTags) perl(IO::File) perl(IO::Poll) perl(IO::Socket) perl(IO::Socket::INET) perl(lib) perl(MIME::Base64) perl(MIME::QuotedPrint) perl(:MODULE_COMPAT_5.12.0) perl(Mojo::Asset::File) perl(Mojo::Asset::Memory) perl(Mojo::ByteStream) perl(Mojo::Client) perl(Mojo::Command) perl(Mojo::Commands) perl(Mojo::Content::MultiPart) perl(Mojo::Content::Single) perl(Mojo::CookieJar) perl(Mojo::Cookie::Request) perl(Mojo::Cookie::Response) perl(Mojo::Date) perl(Mojo::Exception) perl(Mojo::Filter::Chunked) perl(Mojo::Headers) perl(Mojo::Home) perl(Mojo::IOLoop) perl(Mojo::JSON) perl(Mojolicious) perl(Mojolicious::Commands) perl(Mojolicious::Plugins) perl(Mojo::Loader) perl(Mojo::Log) perl(Mojo::Message::Request) perl(Mojo::Message::Response) perl(Mojo::Parameters) perl(Mojo::Path) perl(Mojo::Server) perl(Mojo::Server::CGI) perl(Mojo::Server::Daemon) perl(Mojo::Server::Daemon::Prefork) perl(Mojo::Server::FastCGI) perl(Mojo::Server::PSGI) perl(Mojo::Template) perl(Mojo::Transaction::HTTP) perl(Mojo::Transaction::WebSocket) perl(Mojo::Upload) perl(Mojo::URL) perl(MojoX::Dispatcher::Routes) perl(MojoX::Dispatcher::Static) perl(MojoX::Renderer) perl(MojoX::Routes::Match) perl(MojoX::Routes::Pattern) perl(MojoX::Session::Cookie) perl(MojoX::Types) perl(overload) perl(POSIX) perl(Scalar::Util) perl(Socket) perl(Storable) perl(strict) perl(Test::Harness) perl(Test::More) perl(Time::HiRes) perl(Time::Local) perl(warnings) + %check is present and all tests pass. PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/*/*.t t/*/*/*.t t/*/*/*/*.t t/mojo/apache_cgi.t ....................... skipped: Mac OS X required for this test! t/mojo/apache_fastcgi.t ................... skipped: Mac OS X required for this test! t/mojo/app.t .............................. ok t/mojo/asset.t ............................ ok t/mojo/base.t ............................. ok t/mojo/bytestream.t ....................... ok t/mojo/cgi.t .............................. ok t/mojo/client.t ........................... skipped: set TEST_CLIENT to enable this test (internet connection required!) t/mojo/content.t .......................... ok t/mojo/cookie.t ........................... ok t/mojo/cookiejar.t ........................ ok t/mojo/daemon.t ........................... skipped: set TEST_DAEMON to enable this test (developer only!) t/mojo/daemon_prefork.t ................... skipped: set TEST_PREFORK to enable this test (developer only!) t/mojo/date.t ............................. ok t/mojo/dom.t .............................. ok t/mojo/fastcgi.t .......................... ok t/mojo/headers.t .......................... ok t/mojo/home.t ............................. ok t/mojo/ioloop.t ........................... ok t/mojo/json.t ............................. ok t/mojo/loader.t ........................... ok t/mojo/message.t .......................... ok t/mojo/parameters.t ....................... ok t/mojo/path.t ............................. ok t/mojo/psgi.t ............................. ok t/mojo/server.t ........................... ok t/mojo/stateful.t ......................... ok t/mojo/template.t ......................... ok t/mojo/url.t .............................. ok t/mojolicious/app.t ....................... ok t/mojolicious/charset_lite_app.t .......... ok t/mojolicious/dispatcher_lite_app.t ....... ok t/mojolicious/embedded_lite_app.t ......... ok t/mojolicious/i18n_lite_app.t ............. ok t/mojolicious/json_config_lite_app.t ...... ok t/mojolicious/lite_app.t .................. ok t/mojolicious/pod_renderer_lite_app.t ..... ok t/mojolicious/production_app.t ............ ok t/mojolicious/twinkle_lite_app.t .......... ok t/mojolicious/upload_lite_app.t ........... ok t/mojolicious/websocket_lite_app.t ........ ok t/mojolicious/websocket_proxy_lite_app.t .. ok t/mojox/dispatcher/routes.t ............... ok t/mojox/dispatcher/routes/controller.t .... ok t/mojox/renderer.t ........................ ok t/mojox/routes/pattern.t .................. ok t/mojox/routes/routes.t ................... ok t/pod.t ................................... skipped: Test::Pod 1.14 required for this test! t/pod_coverage.t .......................... skipped: Test::Pod::Coverage 1.04 required for this test! All tests successful. Files=49, Tests=2717, 15 wallclock secs ( 0.11 usr 0.16 sys + 10.79 cusr 1.23 csys = 12.29 CPU) Result: PASS + 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. + no generically named files + code, not content. + documentation is small, so no -doc subpackage is necessary. + %docs are not necessary for the proper functioning of the package.
Looks good. APPROVED.
New Package CVS Request ======================= Package Name: perl-Mojolicious Short Description: A next generation web framework for Perl Owners: yaneti Branches: F-13 InitialCC: perl-sig
CVS done (by process-cvs-requests.py).
Imported. Builds done. Bodhi update for stable submitted. Thanks for the review. Co-maintainers and potential new owners welcome.