Bug 617405 - Review Request: poezio - IRC-like jabber (XMPP) console client
Review Request: poezio - IRC-like jabber (XMPP) console client
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Christoph Wickert
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-22 19:25 EDT by Florent Le Coz
Modified: 2011-03-10 18:24 EST (History)
5 users (show)

See Also:
Fixed In Version: poezio-0.6.2-3.fc15
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-03-10 16:55:59 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
cwickert: fedora‑review+
tibbs: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Florent Le Coz 2010-07-22 19:25:53 EDT
Spec URL: http://louizatakk.fedorapeople.org/rpm/poezio.spec
SRPM URL: http://louizatakk.fedorapeople.org/rpm/poezio-0.6.2-1.fc13.src.rpm
Description: 
A jabber (XMPP) console client that aims at being similar to popular IRC
clients such as Irssi or Weechat. Its main goal is to let the user
connect to the Jabber network and join chat rooms without requiring any
registration.

Note: I'm the upstream developer of this software.

rpmlint output:
poezio.noarch: W: no-manual-page-for-binary poezio
2 packages and 1 specfiles checked; 0 errors, 1 warnings.

The man page will be added in latter version (http://codingteam.net/project/poezio/bugs/show/1670)
Comment 1 Tom Atkinson 2010-07-24 12:03:28 EDT
Informal pre-review:

# MUST: rpmlint must be run on every package. The output should be posted in the review.

poezio.noarch: W: no-manual-page-for-binary poezio
Each executable in standard binary directories should have a man page.

2 packages and 0 specfiles checked; 0 errors, 1 warnings.


# 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.

OK

# MUST: The package must meet the Packaging Guidelines .

OK

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

OK - GPLv3

# 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 - COPYING file included in %doc

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

OK

# MUST: The spec file for the package MUST be legible.

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 - md5sum matches

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

N/A - package is noarch

# 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.

N/A - package is noarch

# 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.

According to http://fedoraproject.org/wiki/Packaging:Python BuildRequires: python2-devel is required

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

OK - No locales

# 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.

N/A - package is noarch

# MUST: Packages must NOT bundle copies of system libraries.

OK

# 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.

OK - not relocatable

# 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.

OK

# 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)

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.

OK

# MUST: Each package must consistently use macros.

OK

# MUST: The package must contain code, or permissable content.

OK

# 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).

OK - No large documentation

# 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.

OK - no header files

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

OK - no static libs

# 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.

OK - no such files

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

OK - no devel package

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

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. 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.

OK - Not a GUI application

# 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: All filenames in rpm packages must be valid UTF-8

OK

# SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.

OK - license text is includes as a separate file from upstream and in the package

# SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.

No translations provided.

# SHOULD: The reviewer should test that the package builds in mock.

OK

# SHOULD: The package should compile and build into binary rpms on all supported architectures.

N/A - package is noarch

# SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example.

OK

# SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity.

OK

# SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.

OK - no subpackages

# SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb.

OK - no pkgconfig files

# SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself.

OK - no file deps

# SHOULD: your package should contain man pages for binaries/scripts. If it doesn't, work with upstream to add them where they make sense.

OK - man page to come


Summary:

Check the BuildRequires, everything else seems ok.
Comment 2 Florent Le Coz 2010-07-25 19:33:32 EDT
Ok, thank you very much for the review.

I fixed the BuildRequires:

Spec File: http://louizatakk.fedorapeople.org/rpm/poezio.spec
SRPM File: http://louizatakk.fedorapeople.org/rpm/poezio-0.6.2-2.fc13.src.rpm
Comment 3 Florent Le Coz 2010-07-29 15:12:52 EDT
Hu, bump? :(
Comment 4 Christoph Wickert 2010-07-29 19:41:16 EDT
Please don't be so impatient. Tom is not yet a packager, so he is not allowed to do this review. I will take over for him.
Comment 5 Christoph Wickert 2010-08-10 10:53:32 EDT
Sorry it took so long.

OK - MUST: $ rpmlint /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
poezio.noarch: W: no-manual-page-for-binary poezio
2 packages and 0 specfiles checked; 0 errors, 1 warnings.

OK - MUST: named according to the Package Naming Guidelines
OK - MUST: spec file name matches the base package %{name}
OK - MUST: package meets the Packaging Guidelines
OK - MUST: Fedora approved license and meets the Licensing Guidelines (GPLv3 only)
OK - MUST: License field in spec file matches the actual license
OK - MUST: license file included in %doc
OK - MUST: spec is in American English
OK - MUST: spec is legible
OK - MUST: sources match the upstream source by MD5 4cca396fe4d520f9884a65c546100b76
OK - MUST: successfully compiles and builds into binary rpms on x86_64 (noarch package)
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.
OK - MUST: all build dependencies are listed in BuildRequires.
N/A - MUST: handles locales properly with %find_lang
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.
OK - MUST: Package does 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.
OK - MUST: owns all directories that it creates
OK - MUST: no duplicate files in the %files listing
OK - MUST: Permissions on files are set properly, includes %defattr(...)
OK - MUST: package has a %clean section, which contains rm -rf %{buildroot}.
OK - MUST: consistently uses macros
OK - MUST: package contains code, or permissable content
N/A - MUST: Large documentation files should go in a -doc subpackage
OK - MUST: Files included as %doc do not affect the runtime of the application
N/A - MUST: Header files must be in a -devel package
N/A - MUST: Static libraries must be in a -static package
N/A - MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'.
N/A - MUST: If a package contains library files with a suffix, then library files that end in .so must go in a -devel package.
N/A - MUST: devel packages must require the base package using a fully versioned dependency
OK - MUST: The package does not contain any .la libtool archives.
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.
OK - MUST: package does not own files or directories already owned by other packages.
OK - MUST: at the beginning of %install, the package runs rm -rf %{buildroot}.
OK - MUST: all filenames valid UTF-8


SHOULD Items:
OK - SHOULD: Source package includes license text(s) as a separate file.
N/A - SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.
OK - SHOULD: builds in mock.
OK - SHOULD: compiles and builds into binary rpms on all supported architectures.
OK - SHOULD: functions as described.
N/A - SHOULD: Scriptlets are used, those scriptlets must be sane.
N/A - SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
N/A - SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg
N/A - SHOULD: no file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin


Other items:
OK - latest stable version
OK - SourceURL valid


Some minor issues. None of them is really important, this more meant to be a little education for Tom.

Please change the %global at the beginning of the spec as per https://fedoraproject.org/wiki/Packaging:Python#Macros


Please don't use articles like "A" or "An" in the summary, just "IRC-like jabber (XMPP) console client" is fine.


mkdir -p %{buildroot}%{_datadir}/%{name}
mkdir -p %{buildroot}%{_datadir}/%{name}/data
mkdir -p %{buildroot}%{_datadir}/%{name}/src

at least the first line is not necessary. The whole thing could be boiled down to

mkdir -p %{buildroot}%{_datadir}/%{name}/{data,src}


Please preserve timestamps during %install with install -p, see https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps


Also preserve the timestamps when removing the shebangs from files, see
https://fedoraproject.org/wiki/Packaging_tricks#Remove_shebang_from_Python_libraries


Instead of 

%{_datadir}/%{name}

better use the 

%{_datadir}/%{name}/
The trailing / is to indicate it is a directory and not a file. This doesn't make a difference to rpm, but helps other humans to read the spec.


For the launcher I'd rather use:

# create launcher
cat > %{buildroot}%{_bindir}/%{name} <<EOF
#!/usr/bin/env sh
cd %{_datadir}/poezio/src/ && python poezio.py
EOF


None of these things really is a blocker. Please apply the changes (or at least the ones that you think are useful) and consider the package APPROVED.
Comment 6 Florent Le Coz 2010-08-11 06:07:44 EDT
Thank you for the review, a and sorry to have been impatient. :)

Spec File: http://louizatakk.fedorapeople.org/rpm/poezio.spec
SRPM File: http://louizatakk.fedorapeople.org/rpm/poezio-0.6.2-3.fc13.src.rpm

(In reply to comment #5)
> 
> Some minor issues. None of them is really important, this more meant to be a
> little education for Tom.
> 
> Please change the %global at the beginning of the spec as per
> https://fedoraproject.org/wiki/Packaging:Python#Macros
> 
DONE

> 
> Please don't use articles like "A" or "An" in the summary, just "IRC-like
> jabber (XMPP) console client" is fine.
> 
DONE

> 
> mkdir -p %{buildroot}%{_datadir}/%{name}
> mkdir -p %{buildroot}%{_datadir}/%{name}/data
> mkdir -p %{buildroot}%{_datadir}/%{name}/src
> 
> at least the first line is not necessary. The whole thing could be boiled down
> to
> 
> mkdir -p %{buildroot}%{_datadir}/%{name}/{data,src}
>
DONE
(It is now
mkdir -p %{buildroot}%{_datadir}/%{name}/data
mkdir -p %{buildroot}%{_datadir}/%{name}/src
For readability)
 
> 
> Please preserve timestamps during %install with install -p, see
> https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps
> 
DONE

> 
> Also preserve the timestamps when removing the shebangs from files, see
> https://fedoraproject.org/wiki/Packaging_tricks#Remove_shebang_from_Python_libraries
> 
> 
DONE

> Instead of 
> 
> %{_datadir}/%{name}
> 
> better use the 
> 
> %{_datadir}/%{name}/
> The trailing / is to indicate it is a directory and not a file. This doesn't
> make a difference to rpm, but helps other humans to read the spec.
>
DONE
 
> For the launcher I'd rather use:
> 
> # create launcher
> cat > %{buildroot}%{_bindir}/%{name} <<EOF
> #!/usr/bin/env sh
> cd %{_datadir}/poezio/src/ && python poezio.py
> EOF
> 
DONE

> None of these things really is a blocker. Please apply the changes (or at least
> the ones that you think are useful) and consider the package APPROVED.    
Ok, thank you.
Comment 7 Florent Le Coz 2010-08-11 06:14:18 EDT
New Package SCM Request
=======================
Package Name: poezio
Short Description: IRC-like jabber (XMPP) console client
Owners: louizatakk
Branches: f12 f13 f14
InitialCC: louizatakk
Comment 8 Jason Tibbitts 2010-08-11 08:48:57 EDT
Git done (by process-git-requests).
Comment 9 Christoph Wickert 2011-03-10 16:55:59 EST
I see this package was already build  way back but not by Florent but by Matej. 

Florent, if you have any problems with the built system, don't hesitate to contact me or your sponsor.
Comment 10 Florent Le Coz 2011-03-10 18:24:35 EST
Thank you for your concern :)

I do not have any problem with the build system, I’m just waiting for a “stabilization” of the SleekXMPP library, which is still in heavy development. The packaging of both poezio and SleekXMPP is done but I do not yet consider poezio to be “stable” enough.
Also, I haven’t received any request for an urgent inclusion of poezio in fedora’s repository so I’m kind of taking my time and waiting for a good release (that’s my goal for 0.7.5).

Is this in any way problematic? Or does it not matter?

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