Bug 784156

Summary: Review Request: uwsgi - Fast, self-healing, application container server
Product: [Fedora] Fedora Reporter: Jorge Gallegos <kad>
Component: Package ReviewAssignee: Steven Dake <sdake>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: esm, ewoud+redhat, fschwarz, mjd+redhat, notting, oskari, package-review, sdake, techtonik, terje.rosten
Target Milestone: ---Flags: sdake: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: uwsgi-1.0.4-1.fc17 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-03-13 18:29:55 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:
Attachments:
Description Flags
Spec file for uwsgi. Not suitable for production.
none
initd script for uwsgi
none
.ini file for uwsgi. Gets patched at package build time. none

Description Jorge Gallegos 2012-01-24 02:31:22 UTC
Spec URL: http://kad.fedorapeople.org//uwsgi.spec
SRPM URL: http://kad.fedorapeople.org//uwsgi-1.0.2.1-1.fc16.src.rpm

Description:
uWSGI is a fast (pure C), self-healing, developer/sysadmin-friendly
application container server.  Born as a WSGI-only server, over time it has
evolved in a complete stack for networked/clustered web applications,
implementing message/object passing, caching, RPC and process management.
It uses the uwsgi (all lowercase, already included by default in the Nginx
and Cherokee releases) protocol for all the networking/interprocess
communications.  Can be run in preforking mode, threaded,
asynchronous/evented and supports various form of green threads/coroutine
(like uGreen and Fiber).  Sysadmin will love it as it can be configured via
command line, environment variables, xml, .ini and yaml files and via LDAP.
Being fully modular can use tons of different technology on top of the same
core.

Comment 1 Jorge Gallegos 2012-01-24 02:44:32 UTC
Opening a new ticket as per this comment in this req https://bugzilla.redhat.com/show_bug.cgi?id=682704#c9

Comment 2 Jorge Gallegos 2012-01-24 02:57:29 UTC
Forgot to add the link to the koji scratch build, here it is:

http://koji.fedoraproject.org/koji/taskinfo?taskID=3725888

I'm also starting the habit of keeping track of pre-approval spec changes in gist, like this:

https://gist.github.com/629491ed695cc4004831

Comment 3 Steven Dake 2012-01-30 14:11:05 UTC
Jorge,

I will sponsor you as a packager after meeting certain criteria.  First you must demonstrate that you are able to submit packages for review (this package looks pretty good on first glance) and also that you are able to execute the review process.

Please execute the review process on:
https://bugzilla.redhat.com/show_bug.cgi?id=772608

The checklist is here:
http://fedoraproject.org/wiki/Packaging:ReviewGuidelines

An example review is here:
https://bugzilla.redhat.com/show_bug.cgi?id=781831

Comment 4 Steven Dake 2012-02-01 15:40:10 UTC
Jorge,

Thanks for the prompt review of Bug #772608.  You did a really nice job of picking out the issues and demonstrating you can execute a review.

I'll give Gal until Feb 6 to review this package at which point I'll review and then add you to the packagers group once the package has met packaging guidelines.

Regards
-steve

Comment 5 Gal Hammer 2012-02-05 12:56:05 UTC
I am not in the package reviewer group, but have provided this review
as part of my sponsorship process.  As a result, this notifies future
reviewers that the review should be verified.

$ rpmlint uwsgi.spec
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

$ rpmlint uwsgi-1.0.2.1-1.fc16.src.rpm
uwsgi.src: W: spelling-error %description -l en_US interprocess -> inter process, inter-process, intercessors
uwsgi.src: W: spelling-error %description -l en_US preforking -> preforming, preferring
uwsgi.src: W: spelling-error %description -l en_US evented -> evened, vented, e vented
uwsgi.src: W: spelling-error %description -l en_US coroutine -> co routine, co-routine, routine
uwsgi.src: W: spelling-error %description -l en_US uGreen -> u Green, Green, green
uwsgi.src: W: spelling-error %description -l en_US xml -> XML, ml, x ml
uwsgi.src: W: spelling-error %description -l en_US ini -> uni, in, ii
uwsgi.src: W: spelling-error %description -l en_US yaml -> yam, yams, yawl
1 packages and 0 specfiles checked; 0 errors, 8 warnings.

There are few more warning when running rpmlint on the uwsgi-*.rpm files. For example:

uwsgi-plugin-common.x86_64: W: unstripped-binary-or-object /usr/lib64/uwsgi/cgi_plugin.so

uwsgi-plugin-fastrouter.x86_64: W: no-documentation

===

I'm not sure about it. Do you need to run ldconfig in the %post section (http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries)?

===

That's it. For now. :-)

Comment 6 Steven Dake 2012-02-05 16:34:34 UTC
Gal,

Regarding ldconfig in %post section:

From guidelines:

Whenever possible (and feasible), Fedora Packages containing libraries should build them as shared libraries. In addition, every binary RPM package which contains shared library files (not just symlinks) in any of the dynamic linker's default paths

The key determinate on ldconfig being run in %post section is if the shared object is in the default linker paths.

From man ldconfig:

 ldconfig creates the necessary links  and  cache  to  the  most  recent
       shared  libraries  found  in  the  directories specified on the command
       line, in the file /etc/ld.so.conf, and in the trusted directories (/lib
       and  /usr/lib).  The cache is used by the run-time linker, ld.so or ld-
       linux.so.  ldconfig checks the header and filenames of the libraries it
       encounters  when  determining  which  versions  should have their links
       updated.

Comment 7 Steven Dake 2012-02-05 16:37:49 UTC
Gal,

As part of your sponsorship process please use the example review contained below as a template.

The checklist is here:
http://fedoraproject.org/wiki/Packaging:ReviewGuidelines

An example review is here:
https://bugzilla.redhat.com/show_bug.cgi?id=781831

Comment 8 Jorge Gallegos 2012-02-07 06:38:48 UTC
(In reply to comment #6)
> Gal,
> 
> Regarding ldconfig in %post section:
> 
> From guidelines:
> 
> Whenever possible (and feasible), Fedora Packages containing libraries should
> build them as shared libraries. In addition, every binary RPM package which
> contains shared library files (not just symlinks) in any of the dynamic
> linker's default paths
> 
> The key determinate on ldconfig being run in %post section is if the shared
> object is in the default linker paths.
> 
> From man ldconfig:
> 
>  ldconfig creates the necessary links  and  cache  to  the  most  recent
>        shared  libraries  found  in  the  directories specified on the command
>        line, in the file /etc/ld.so.conf, and in the trusted directories (/lib
>        and  /usr/lib).  The cache is used by the run-time linker, ld.so or ld-
>        linux.so.  ldconfig checks the header and filenames of the libraries it
>        encounters  when  determining  which  versions  should have their links
>        updated.

Thanks for the feedback, I just fixed the unstripped-binary-or-object warning, according to http://fedoraproject.org/wiki/Common_Rpmlint_issues#unstripped-binary-or-object "Solution:- Make sure binaries are executable." - So I basically just made all .so files 0755. This warning does not appear anymore

Updated SPEC is http://kad.fedorapeople.org/packages/uwsgi/uwsgi.spec
Updated SRPM is http://kad.fedorapeople.org/packages/uwsgi/uwsgi-1.0.2.1-2.fc16.src.rpm
You can check the changes to the spec at https://gist.github.com/629491ed695cc4004831 and the koji scratch build results at http://koji.fedoraproject.org/koji/taskinfo?taskID=3768034

Comment 9 Gal Hammer 2012-02-14 14:48:06 UTC
I've been asked to publish a full review report.

[PASS] MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.

[PASS] MUST: The package must be named according to the Package Naming Guidelines.

[PASS] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.

[PASS] MUST: The package must meet the Packaging Guidelines.

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

[PASS] MUST: The License field in the package spec file must match the actual license.

[PASS] 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.

[PASS] MUST: The spec file must be written in American English.

[PASS] MUST: The spec file for the package MUST be legible.

[PASS] 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.

[PASS] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.

[IRRELEVANT] 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 MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line.

[PASS] 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.

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

[IRRELEVANT] MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.

[PASS] MUST: Packages must NOT bundle copies of system libraries.

[IRRELEVANT] 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.

[PASS] 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.

[PASS]  MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)

[PASS] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example.

[PASS] MUST: Each package must consistently use macros.

[PASS] MUST: The package must contain code, or permissable content.

[IRRELEVANT] MUST: Large documentation files must 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). [18]
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.

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

[PASS] MUST: Development files must be in a -devel package. [20]
MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name}%{?_isa} = %{version}-%{release}

[PASS] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.

[IRRELEVANT] 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. 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. 

[PASS] 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. [23]

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

Comment 10 Steven Dake 2012-02-14 16:02:19 UTC
Python2 packages should buildrequires python2-devel
python3 packages should buildrequires python3-devel

I am not an expert in the plugins you have developed - could you please address whether these build requires make more sense then the python deps you have now?

Comment 11 Steven Dake 2012-02-14 16:13:46 UTC
Gal

couple comments inline


(In reply to comment #9)
> I've been asked to publish a full review report.
> 
> [PASS] MUST: rpmlint must be run on the source rpm and all binary rpms the
> build produces. The output should be posted in the review.
> 

The review process requires that the output of rpmlint on all binaries and source rpm files be posted in the review.

> [PASS] MUST: The package must be named according to the Package Naming
> Guidelines.
> 
> [PASS] MUST: The spec file name must match the base package %{name}, in the
> format %{name}.spec unless your package has an exemption.
> 
> [PASS] MUST: The package must meet the Packaging Guidelines.
> 
> [PASS] MUST: The package must be licensed with a Fedora approved license and
> meet the Licensing Guidelines.
> 
> [PASS] MUST: The License field in the package spec file must match the actual
> license.
> 
> [PASS] 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.
> 

This is only done for the main package.  It should be done for every package (devel, plugin-*, so this requirement FAILS.

> [PASS] MUST: The spec file must be written in American English.
> 
> [PASS] MUST: The spec file for the package MUST be legible.
> 
> [PASS] 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.
> 

Typically you would show the sha256sum in the review.  For example:
[root@beast SOURCES]# sha256sum uwsgi-1.0.2.1.tar.gz
78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439  uwsgi-1.0.2.1.tar.gz
[root@beast SPECS]# wget http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
--2012-02-14 09:06:35--  http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
Resolving projects.unbit.it... 81.174.68.52
Connecting to projects.unbit.it|81.174.68.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 465250 (454K) [application/x-gzip]
Saving to: “uwsgi-1.0.2.1.tar.gz”

100%[======================================>] 465,250     93.5K/s   in 5.9s    

2012-02-14 09:06:41 (76.9 KB/s) - “uwsgi-1.0.2.1.tar.gz” saved [465250/465250]

[root@beast SPECS]# sha256sum uwsgi-1.0.2.1.tar.gz
78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439  uwsgi-1.0.2.1.tar.gz


> [PASS] MUST: The package MUST successfully compile and build into binary rpms
> on at least one primary architecture.
> 
> [IRRELEVANT] 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 MUST have a bug filed in
> bugzilla, describing the reason that the package does not compile/build/work on
> that architecture. The bug number MUST be placed in a comment, next to the
> corresponding ExcludeArch line.
> 
> [PASS] 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.
> 
> [IRRELEVANT] MUST: The spec file MUST handle locales properly. This is done by
> using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
> 
> [IRRELEVANT] MUST: Every binary RPM package (or subpackage) which stores shared
> library files (not just symlinks) in any of the dynamic linker's default paths,
> must call ldconfig in %post and %postun.

rather then irrelevant, NA (not applicable) makes more sense here.
> 
> [PASS] MUST: Packages must NOT bundle copies of system libraries.
> 
> [IRRELEVANT] 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.
> 
> [PASS] 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.
> 

are you sure about this?  %{_libdir}/%name doesn't appear to be owned by any package although it is used by a variety of packages.  A recommendation on what package should own this directory would be helpful for the packager as well.

> [PASS]  MUST: A Fedora package must not list a file more than once in the spec
> file's %files listings. (Notable exception: license texts in specific
> situations)
> 
> [PASS] MUST: Permissions on files must be set properly. Executables should be
> set with executable permissions, for example.
> 
> [PASS] MUST: Each package must consistently use macros.
> 
> [PASS] MUST: The package must contain code, or permissable content.
> 
> [IRRELEVANT] MUST: Large documentation files must 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). [18]
> 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.
> 
> [IRRELEVANT] MUST: Static libraries must be in a -static package.
> 
> [PASS] MUST: Development files must be in a -devel package. [20]
> MUST: In the vast majority of cases, devel packages must require the base
> package using a fully versioned dependency: Requires: %{name}%{?_isa} =
> %{version}-%{release}
> 
> [PASS] MUST: Packages must NOT contain any .la libtool archives, these must be
> removed in the spec if they are built.
> 
> [IRRELEVANT] 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. 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. 
> 
> [PASS] 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. [23]
> 
> [PASS] MUST: All filenames in rpm packages must be valid UTF-8.

Comment 12 Jorge Gallegos 2012-02-18 18:48:36 UTC
(In reply to comment #10)
> Python2 packages should buildrequires python2-devel
> python3 packages should buildrequires python3-devel
> 
> I am not an expert in the plugins you have developed - could you please address
> whether these build requires make more sense then the python deps you have now?

Hi Steven,

Both python-devel and python3-devel are in the .spec, although at the top along with all the other plugin BuildRequires, should I move them down to each subpackage definition? Also, I'm somewhat confused if it should be python-devel or python2-devel, currently in my fedora 16 box there's no python2-devel but I think that just changed on this release.

Comment 13 Jorge Gallegos 2012-02-18 19:03:16 UTC
(In reply to comment #11)
> Gal
> 
> couple comments inline
> 
> 
> (In reply to comment #9)
> > I've been asked to publish a full review report.
> > 
> > [PASS] MUST: rpmlint must be run on the source rpm and all binary rpms the
> > build produces. The output should be posted in the review.
> > 
> 
> The review process requires that the output of rpmlint on all binaries and
> source rpm files be posted in the review.
> 
> > [PASS] MUST: The package must be named according to the Package Naming
> > Guidelines.
> > 
> > [PASS] MUST: The spec file name must match the base package %{name}, in the
> > format %{name}.spec unless your package has an exemption.
> > 
> > [PASS] MUST: The package must meet the Packaging Guidelines.
> > 
> > [PASS] MUST: The package must be licensed with a Fedora approved license and
> > meet the Licensing Guidelines.
> > 
> > [PASS] MUST: The License field in the package spec file must match the actual
> > license.
> > 
> > [PASS] 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.
> > 
> 
> This is only done for the main package.  It should be done for every package
> (devel, plugin-*, so this requirement FAILS.
> 

from http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing: "If a subpackage is dependent (either implicitly or explicitly) upon a base package (where a base package is defined as a resulting binary package from the same source RPM which contains the appropriate license texts as %doc), it is not necessary for that subpackage to also include those license texts as %doc."

The -devel package is depending on the main uwsgi package, and all -plugin packages depend on -plugin-common, which depends on the main uwsgi package.

> > [PASS] MUST: The spec file must be written in American English.
> > 
> > [PASS] MUST: The spec file for the package MUST be legible.
> > 
> > [PASS] 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.
> > 
> 
> Typically you would show the sha256sum in the review.  For example:
> [root@beast SOURCES]# sha256sum uwsgi-1.0.2.1.tar.gz
> 78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439 
> uwsgi-1.0.2.1.tar.gz
> [root@beast SPECS]# wget
> http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
> --2012-02-14 09:06:35-- 
> http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
> Resolving projects.unbit.it... 81.174.68.52
> Connecting to projects.unbit.it|81.174.68.52|:80... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 465250 (454K) [application/x-gzip]
> Saving to: “uwsgi-1.0.2.1.tar.gz”
> 
> 100%[======================================>] 465,250     93.5K/s   in 5.9s    
> 
> 2012-02-14 09:06:41 (76.9 KB/s) - “uwsgi-1.0.2.1.tar.gz” saved [465250/465250]
> 
> [root@beast SPECS]# sha256sum uwsgi-1.0.2.1.tar.gz
> 78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439 
> uwsgi-1.0.2.1.tar.gz
> 
> 
> > [PASS] MUST: The package MUST successfully compile and build into binary rpms
> > on at least one primary architecture.
> > 
> > [IRRELEVANT] 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 MUST have a bug filed in
> > bugzilla, describing the reason that the package does not compile/build/work on
> > that architecture. The bug number MUST be placed in a comment, next to the
> > corresponding ExcludeArch line.
> > 
> > [PASS] 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.
> > 
> > [IRRELEVANT] MUST: The spec file MUST handle locales properly. This is done by
> > using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
> > 
> > [IRRELEVANT] MUST: Every binary RPM package (or subpackage) which stores shared
> > library files (not just symlinks) in any of the dynamic linker's default paths,
> > must call ldconfig in %post and %postun.
> 
> rather then irrelevant, NA (not applicable) makes more sense here.
> > 
> > [PASS] MUST: Packages must NOT bundle copies of system libraries.
> > 
> > [IRRELEVANT] 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.
> > 
> > [PASS] 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.
> > 
> 
> are you sure about this?  %{_libdir}/%name doesn't appear to be owned by any
> package although it is used by a variety of packages.  A recommendation on what
> package should own this directory would be helpful for the packager as well.
> 

I'm a bit confused here, I agree %{_libdir}/%{name} should be owned by some package (most likely -plugins-common) but I am not sure how to include that dir and *not* including the rest of the .so files within. If I do this in the spec:

%files -n %{name}-plugin-common
%doc ChangeLog LICENSE README
%{_libdir}/%{name}
%{_libdir}/%{name}/cache_plugin.so
%{_libdir}/%{name}/cgi_plugin.so
%{_libdir}/%{name}/rpc_plugin.so
%{_libdir}/%{name}/ugreen_plugin.so

It includes %{_libdir}/%{name} and *.so right in the first entry. Any clues how to do this?

> > [PASS]  MUST: A Fedora package must not list a file more than once in the spec
> > file's %files listings. (Notable exception: license texts in specific
> > situations)
> > 
> > [PASS] MUST: Permissions on files must be set properly. Executables should be
> > set with executable permissions, for example.
> > 
> > [PASS] MUST: Each package must consistently use macros.
> > 
> > [PASS] MUST: The package must contain code, or permissable content.
> > 
> > [IRRELEVANT] MUST: Large documentation files must 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). [18]
> > 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.
> > 
> > [IRRELEVANT] MUST: Static libraries must be in a -static package.
> > 
> > [PASS] MUST: Development files must be in a -devel package. [20]
> > MUST: In the vast majority of cases, devel packages must require the base
> > package using a fully versioned dependency: Requires: %{name}%{?_isa} =
> > %{version}-%{release}
> > 
> > [PASS] MUST: Packages must NOT contain any .la libtool archives, these must be
> > removed in the spec if they are built.
> > 
> > [IRRELEVANT] 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. 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. 
> > 
> > [PASS] 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. [23]
> > 
> > [PASS] MUST: All filenames in rpm packages must be valid UTF-8.

Comment 14 Steven Dake 2012-02-19 00:13:57 UTC
(In reply to comment #12)
> (In reply to comment #10)
> > Python2 packages should buildrequires python2-devel
> > python3 packages should buildrequires python3-devel
> > 
> > I am not an expert in the plugins you have developed - could you please address
> > whether these build requires make more sense then the python deps you have now?
> 
> Hi Steven,
> 
> Both python-devel and python3-devel are in the .spec, although at the top along
> with all the other plugin BuildRequires, should I move them down to each
> subpackage definition? Also, I'm somewhat confused if it should be python-devel
> or python2-devel, currently in my fedora 16 box there's no python2-devel but I
> think that just changed on this release.

The python2-devel and python3-devel should be in the in the top (the package is only built once, so subpackages doesn't make any sense).  I missed them in the original spec, but they were present.  Take care to change python-devel to python2-devel.

Comment 15 Steven Dake 2012-02-19 00:16:46 UTC
(In reply to comment #13)
> (In reply to comment #11)
> > Gal
> > 
> > couple comments inline
> > 
> > 
> > (In reply to comment #9)
> > > I've been asked to publish a full review report.
> > > 
> > > [PASS] MUST: rpmlint must be run on the source rpm and all binary rpms the
> > > build produces. The output should be posted in the review.
> > > 
> > 
> > The review process requires that the output of rpmlint on all binaries and
> > source rpm files be posted in the review.
> > 
> > > [PASS] MUST: The package must be named according to the Package Naming
> > > Guidelines.
> > > 
> > > [PASS] MUST: The spec file name must match the base package %{name}, in the
> > > format %{name}.spec unless your package has an exemption.
> > > 
> > > [PASS] MUST: The package must meet the Packaging Guidelines.
> > > 
> > > [PASS] MUST: The package must be licensed with a Fedora approved license and
> > > meet the Licensing Guidelines.
> > > 
> > > [PASS] MUST: The License field in the package spec file must match the actual
> > > license.
> > > 
> > > [PASS] 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.
> > > 
> > 
> > This is only done for the main package.  It should be done for every package
> > (devel, plugin-*, so this requirement FAILS.
> > 
> 
> from
> http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing:
> "If a subpackage is dependent (either implicitly or explicitly) upon a base
> package (where a base package is defined as a resulting binary package from the
> same source RPM which contains the appropriate license texts as %doc), it is
> not necessary for that subpackage to also include those license texts as %doc."
> 
> The -devel package is depending on the main uwsgi package, and all -plugin
> packages depend on -plugin-common, which depends on the main uwsgi package.
> 

Thanks your right - learning experience for everyone ;)

> > > [PASS] MUST: The spec file must be written in American English.
> > > 
> > > [PASS] MUST: The spec file for the package MUST be legible.
> > > 
> > > [PASS] 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.
> > > 
> > 
> > Typically you would show the sha256sum in the review.  For example:
> > [root@beast SOURCES]# sha256sum uwsgi-1.0.2.1.tar.gz
> > 78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439 
> > uwsgi-1.0.2.1.tar.gz
> > [root@beast SPECS]# wget
> > http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
> > --2012-02-14 09:06:35-- 
> > http://projects.unbit.it/downloads/uwsgi-1.0.2.1.tar.gz
> > Resolving projects.unbit.it... 81.174.68.52
> > Connecting to projects.unbit.it|81.174.68.52|:80... connected.
> > HTTP request sent, awaiting response... 200 OK
> > Length: 465250 (454K) [application/x-gzip]
> > Saving to: “uwsgi-1.0.2.1.tar.gz”
> > 
> > 100%[======================================>] 465,250     93.5K/s   in 5.9s    
> > 
> > 2012-02-14 09:06:41 (76.9 KB/s) - “uwsgi-1.0.2.1.tar.gz” saved [465250/465250]
> > 
> > [root@beast SPECS]# sha256sum uwsgi-1.0.2.1.tar.gz
> > 78280b57a970db7842e4481f8b00f13d011f27b340c869dc1ad28d564d716439 
> > uwsgi-1.0.2.1.tar.gz
> > 
> > 
> > > [PASS] MUST: The package MUST successfully compile and build into binary rpms
> > > on at least one primary architecture.
> > > 
> > > [IRRELEVANT] 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 MUST have a bug filed in
> > > bugzilla, describing the reason that the package does not compile/build/work on
> > > that architecture. The bug number MUST be placed in a comment, next to the
> > > corresponding ExcludeArch line.
> > > 
> > > [PASS] 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.
> > > 
> > > [IRRELEVANT] MUST: The spec file MUST handle locales properly. This is done by
> > > using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
> > > 
> > > [IRRELEVANT] MUST: Every binary RPM package (or subpackage) which stores shared
> > > library files (not just symlinks) in any of the dynamic linker's default paths,
> > > must call ldconfig in %post and %postun.
> > 
> > rather then irrelevant, NA (not applicable) makes more sense here.
> > > 
> > > [PASS] MUST: Packages must NOT bundle copies of system libraries.
> > > 
> > > [IRRELEVANT] 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.
> > > 
> > > [PASS] 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.
> > > 
> > 
> > are you sure about this?  %{_libdir}/%name doesn't appear to be owned by any
> > package although it is used by a variety of packages.  A recommendation on what
> > package should own this directory would be helpful for the packager as well.
> > 
> 
> I'm a bit confused here, I agree %{_libdir}/%{name} should be owned by some
> package (most likely -plugins-common) but I am not sure how to include that dir
> and *not* including the rest of the .so files within. If I do this in the spec:
> 
> %files -n %{name}-plugin-common
> %doc ChangeLog LICENSE README
> %{_libdir}/%{name}
> %{_libdir}/%{name}/cache_plugin.so
> %{_libdir}/%{name}/cgi_plugin.so
> %{_libdir}/%{name}/rpc_plugin.so
> %{_libdir}/%{name}/ugreen_plugin.so
> 
> It includes %{_libdir}/%{name} and *.so right in the first entry. Any clues how
> to do this?
> 

try %dir %{_libdir}/%name

> > > [PASS]  MUST: A Fedora package must not list a file more than once in the spec
> > > file's %files listings. (Notable exception: license texts in specific
> > > situations)
> > > 
> > > [PASS] MUST: Permissions on files must be set properly. Executables should be
> > > set with executable permissions, for example.
> > > 
> > > [PASS] MUST: Each package must consistently use macros.
> > > 
> > > [PASS] MUST: The package must contain code, or permissable content.
> > > 
> > > [IRRELEVANT] MUST: Large documentation files must 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). [18]
> > > 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.
> > > 
> > > [IRRELEVANT] MUST: Static libraries must be in a -static package.
> > > 
> > > [PASS] MUST: Development files must be in a -devel package. [20]
> > > MUST: In the vast majority of cases, devel packages must require the base
> > > package using a fully versioned dependency: Requires: %{name}%{?_isa} =
> > > %{version}-%{release}
> > > 
> > > [PASS] MUST: Packages must NOT contain any .la libtool archives, these must be
> > > removed in the spec if they are built.
> > > 
> > > [IRRELEVANT] 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. 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. 
> > > 
> > > [PASS] 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. [23]
> > > 
> > > [PASS] MUST: All filenames in rpm packages must be valid UTF-8.

Comment 16 Jorge Gallegos 2012-02-19 18:50:03 UTC
Ok put a new .src.rpm and .spec addressing the issues in the feedback, I also went ahead and updated to the latest stable version:

SRPM: http://kad.fedorapeople.org/packages/uwsgi/uwsgi-1.0.4-1.fc16.src.rpm
SPEC: http://kad.fedorapeople.org/packages/uwsgi/uwsgi.spec (or https://gist.github.com/629491ed695cc4004831 if you are interested in the history)
Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3803298

Comment 17 Steven Dake 2012-02-19 19:47:17 UTC
Official review:
[PASS] MUST: rpmlint must be run on the source rpm and all binary rpms the
build produces. The output should be posted in the review.
[root@beast SRPMS]# rpmlint uwsgi-1.0.4-1.fc16.src.rpm
uwsgi.src: W: spelling-error %description -l en_US interprocess -> inter process, inter-process, intercessors
uwsgi.src: W: spelling-error %description -l en_US preforking -> preforming, preferring
uwsgi.src: W: spelling-error %description -l en_US evented -> evened, vented, e vented
uwsgi.src: W: spelling-error %description -l en_US uGreen -> u Green, Green, green
uwsgi.src: W: spelling-error %description -l en_US xml -> XML, ml, x ml
uwsgi.src: W: spelling-error %description -l en_US ini -> uni, in, ii
uwsgi.src: W: spelling-error %description -l en_US yaml -> yam, yams, yawl
1 packages and 0 specfiles checked; 0 errors, 7 warnings.

[PASS] MUST: The package must be named according to the Package Naming
Guidelines.

[root@beast x86_64]# rpmlint uwsgi-plugin-ruby-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-ruby.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Ruby support
uwsgi-plugin-ruby.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-rack-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-rack.x86_64: W: summary-not-capitalized C uWSGI - Ruby rack plugin
uwsgi-plugin-rack.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-python3-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-python3.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Python 3.2 support
uwsgi-plugin-python3.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-python-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-python.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Python support
uwsgi-plugin-python.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-psgi-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-psgi.x86_64: W: summary-not-capitalized C uWSGI - Plugin for PSGI support
uwsgi-plugin-psgi.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-nagios-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-nagios.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Nagios support
uwsgi-plugin-nagios.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-lua-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-lua.x86_64: W: summary-not-capitalized C uWSGI - Plugin for LUA support
uwsgi-plugin-lua.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-greenlet-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-greenlet.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Python Greenlet support
uwsgi-plugin-greenlet.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-fastrouter-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-fastrouter.x86_64: W: summary-not-capitalized C uWSGI - Plugin for FastRouter support
uwsgi-plugin-fastrouter.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-common-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-common.x86_64: W: summary-not-capitalized C uWSGI - Common plugins for uWSGI
uwsgi-plugin-common.x86_64: W: spelling-error %description -l en_US uGreen -> u Green, Green, green
uwsgi-plugin-common.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

[root@beast x86_64]# rpmlint uwsgi-plugin-admin-1.0.4-1.fc16.x86_64.rpm
uwsgi-plugin-admin.x86_64: W: summary-not-capitalized C uWSGI - Plugin for Admin support
uwsgi-plugin-admin.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[root@beast x86_64]# rpmlint uwsgi-devel-1.0.4-1.fc16.x86_64.rpm
uwsgi-devel.x86_64: W: summary-not-capitalized C uWSGI - Development header files and libraries
uwsgi-devel.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
[root@beast x86_64]# rpmlint uwsgi-1.0.4-1.fc16.x86_64.rpm
uwsgi.x86_64: W: spelling-error %description -l en_US interprocess -> inter process, inter-process, intercessors
uwsgi.x86_64: W: spelling-error %description -l en_US preforking -> preforming, preferring
uwsgi.x86_64: W: spelling-error %description -l en_US evented -> evened, vented, e vented
uwsgi.x86_64: W: spelling-error %description -l en_US uGreen -> u Green, Green, green
uwsgi.x86_64: W: spelling-error %description -l en_US xml -> XML, ml, x ml
uwsgi.x86_64: W: spelling-error %description -l en_US ini -> uni, in, ii
uwsgi.x86_64: W: spelling-error %description -l en_US yaml -> yam, yams, yawl
uwsgi.x86_64: W: no-manual-page-for-binary uwsgi
[root@beast x86_64]# rpmlint uwsgi-debuginfo-1.0.4-1.fc16.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint warnings are all false negative spelling warnings.  PASS.

[PASS] MUST: The spec file name must match the base package %{name}, in the
format %{name}.spec unless your package has an exemption.

[PASS] MUST: The package must meet the Packaging Guidelines.

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

[PASS] MUST: The License field in the package spec file must match the actual
license.

[PASS] 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.

[PASS] MUST: The spec file must be written in American English.

[PASS] MUST: The spec file for the package MUST be legible.

[PASS] 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.

[root@beast SPECS]# wget http://projects.unbit.it/downloads/uwsgi-1.0.4.tar.gz
--2012-02-19 12:43:46--  http://projects.unbit.it/downloads/uwsgi-1.0.4.tar.gz
Resolving projects.unbit.it... 81.174.68.52
Connecting to projects.unbit.it|81.174.68.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 465762 (455K) [application/x-gzip]
Saving to: “uwsgi-1.0.4.tar.gz”

100%[======================================>] 465,762      189K/s   in 2.4s    

2012-02-19 12:43:50 (189 KB/s) - “uwsgi-1.0.4.tar.gz” saved [465762/465762]

[root@beast SPECS]# sha256sum uwsgi-1.0.4.tar.gz
3267c48fdfce41766a237eb696eaaa6ee8d90672b483dbfc746663ddc8383b8d  uwsgi-1.0.4.tar.gz

[root@beast SOURCES]# sha256sum uwsgi-1.0.4.tar.gz
3267c48fdfce41766a237eb696eaaa6ee8d90672b483dbfc746663ddc8383b8d  uwsgi-1.0.4.tar.gz

[PASS] MUST: The package MUST successfully compile and build into binary rpms
on at least one primary architecture.

[N/A] 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 MUST have a bug filed in
bugzilla, describing the reason that the package does not compile/build/work on
that architecture. The bug number MUST be placed in a comment, next to the
corresponding ExcludeArch line.

[PASS] 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.

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

[N/A] MUST: Every binary RPM package (or subpackage) which stores shared
library files (not just symlinks) in any of the dynamic linker's default paths,
must call ldconfig in %post and %postun.

[PASS] MUST: Packages must NOT bundle copies of system libraries.

[N/A] 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.

[PASS] 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.

[PASS]  MUST: A Fedora package must not list a file more than once in the spec
file's %files listings. (Notable exception: license texts in specific
situations)

[PASS] MUST: Permissions on files must be set properly. Executables should be
set with executable permissions, for example.

[PASS] MUST: Each package must consistently use macros.

[PASS] MUST: The package must contain code, or permissable content.

[N/A] MUST: Large documentation files must 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). [18]
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.

[N/A] MUST: Static libraries must be in a -static package.

[PASS] MUST: Development files must be in a -devel package. [20]
MUST: In the vast majority of cases, devel packages must require the base
package using a fully versioned dependency: Requires: %{name}%{?_isa} =
%{version}-%{release}

[PASS] MUST: Packages must NOT contain any .la libtool archives, these must be
removed in the spec if they are built.

[N/A] 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. 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. 

[PASS] 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. [23]

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

Comment 18 Steven Dake 2012-02-19 19:48:01 UTC
PACKAGE APPROVED.

Comment 19 Steven Dake 2012-02-19 19:49:45 UTC
Jorge,

Congratulations on becoming a fedora packager.  Please submit a SCM request once your packager status has changed in the accounts system.

If you need further help with package reviews you are undertaking or any guidance on policy, please contact me in email (sdake).  I will serve as your mentor if you get stuck or need additional assistance.

Comment 20 Jorge Gallegos 2012-02-22 06:28:39 UTC
New Package SCM Request
=======================
Package Name: uwsgi
Short Description: Fast, self-healing, application container server
Owners: kad
Branches: f16, f17
InitialCC:

Comment 21 Jorge Gallegos 2012-02-22 06:31:47 UTC
Thanks a lot Steven!

Ok, I hope I changed all of the right flags here, I'm following https://fedoraproject.org/wiki/Package_SCM_admin_requests#New_Packages and saw a bunch of results for SCM request bundled in the corresponding package review ticket, hope that is all ok, otherwise I can open a new ticket for that.

Comment 22 Gwyn Ciesla 2012-02-22 13:28:38 UTC
Git done (by process-git-requests).

Also, a word of advice, don't build RPMs as root.  Even if you wrote every
line of code in the tarball. :)

Comment 23 Fedora Update System 2012-02-23 07:01:49 UTC
uwsgi-1.0.4-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/uwsgi-1.0.4-1.fc17

Comment 24 Jorge Gallegos 2012-02-23 07:05:38 UTC
Ok, I believe is all ready to go for f17, unless I'm missing something? thanks a lot guys, you rock!

PS: Jon, I believe I didn't build my packages as root... I used mock on my machine and tested via koji later, did you see any warning wrt root file ownership? If so I'd like to know to fix my setup :)

Comment 25 Jorge Gallegos 2012-02-23 07:08:16 UTC
*** Bug 682704 has been marked as a duplicate of this bug. ***

Comment 26 Fedora Update System 2012-02-23 22:29:36 UTC
uwsgi-1.0.4-1.fc17 has been pushed to the Fedora 17 testing repository.

Comment 27 Fedora Update System 2012-03-13 18:29:55 UTC
uwsgi-1.0.4-1.fc17 has been pushed to the Fedora 17 stable repository.

Comment 28 Ewoud Kohl van Wijngaarden 2012-03-22 11:44:30 UTC
I'd like to use uwsgi on EL6 but I'm unsure if I should request this here or in a separate bug. Would you be interested in maintaining it for EL6 as well?

Comment 29 Terje Røsten 2012-03-26 20:39:26 UTC
Any chance of a F16 build and bodhi push?

Comment 30 techtonik 2012-05-19 12:30:29 UTC
Where is the package for F16?

Comment 31 Jorge Gallegos 2012-05-23 02:22:19 UTC
This was intended to go with f17, however there is a test koji build for f16 I did before submitting it for f17. http://koji.fedoraproject.org/koji/buildinfo?buildID=301059

You can also just rebuild the .src.rpm, since I did all the testing in a f16 box

Comment 32 Mitch Davis 2012-05-23 02:36:42 UTC
I fetched the .src.rpm and it rebuilt under F16 very easily.

There's no systemd/initd support.  I have been working on that for myself.  I gave up on systemd because I couldn't get it to work.  Initd is close to working in emperor mode.

Anyone like work work on this with me?

Comment 33 Mitch Davis 2012-07-11 09:05:35 UTC
Created attachment 597512 [details]
Spec file for uwsgi.  Not suitable for production.

Comment 34 Mitch Davis 2012-07-11 09:06:45 UTC
Created attachment 597513 [details]
initd script for uwsgi

Should really be a systemd script, but I couldn't get that to work.

Comment 35 Mitch Davis 2012-07-11 09:07:47 UTC
Created attachment 597514 [details]
.ini file for uwsgi.  Gets patched at package build time.

Comment 36 Mitch Davis 2012-07-11 09:08:28 UTC
Jorge,

Not sure what the status of this package is at the moment, but I've been fiddling with it for my own needs.

In particular, I've given it an initd script (albeit not a very good one), and changed the spec file so that the different plugins can be turned on and off.  Me, I only need the python2 plugin, and I have to compile on the 32-bit server where I need to run it.  I don't want to pull in all the devel stuff onto that server, just gcc and python-devel.

I'm also starting it in emperor mode.  This way, new uwsgi services can be created just by putting a service file into /etc/uwsgo/vassals - no modification of uwsgi's config file is necessary.

Please find attached the .spec file, initd script, and .ini script.    I'm not saying any of these are sutiable for production, but you might consider making some of these changes.

Mitch.

Comment 37 Jorge Gallegos 2012-07-12 04:44:26 UTC
Mitch,

As you can see in the bug details, this got completed a while back and uWSGI is available in Fedora 17. I just pushed v1.2.4 and has been sitting in updates-testing for a couple of days (see https://admin.fedoraproject.org/updates/FEDORA-2012-10444/uwsgi-1.2.4-1.fc17 ) if you want to test/add karma would be much appreciated.

I am working on the systemd integration for f18.


Regards

(In reply to comment #36)
> Jorge,
> 
> Not sure what the status of this package is at the moment, but I've been
> fiddling with it for my own needs.
> 
> In particular, I've given it an initd script (albeit not a very good one),
> and changed the spec file so that the different plugins can be turned on and
> off.  Me, I only need the python2 plugin, and I have to compile on the
> 32-bit server where I need to run it.  I don't want to pull in all the devel
> stuff onto that server, just gcc and python-devel.
> 
> I'm also starting it in emperor mode.  This way, new uwsgi services can be
> created just by putting a service file into /etc/uwsgo/vassals - no
> modification of uwsgi's config file is necessary.
> 
> Please find attached the .spec file, initd script, and .ini script.    I'm
> not saying any of these are sutiable for production, but you might consider
> making some of these changes.
> 
> Mitch.

Comment 38 Jorge Gallegos 2014-09-13 00:03:23 UTC
Package Change Request
======================
Package Name: uwsgi
New Branches: el6 epel7
Owners: kad

Requesting EPEL 6 and 7 branches for existing package uwsgi. I am the owner.

Comment 39 Gwyn Ciesla 2014-09-15 12:05:24 UTC
Git done (by process-git-requests).