Bug 697673

Summary: Review Request: sjinn - Simple tool for sending & receiving data from RS-232 devices
Product: [Fedora] Fedora Reporter: John W. Linville <linville>
Component: Package ReviewAssignee: Mario Blättermann <mario.blaettermann>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, mario.blaettermann, martin.gieseking, notting
Target Milestone: ---Flags: mario.blaettermann: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-02 17:45:04 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:

Description John W. Linville 2011-04-18 21:33:02 UTC
Spec URL: http://linville.fedorapeople.org/sjinn.spec
SRPM URL: http://linville.fedorapeople.org/sjinn-1.01-1.fc14.src.rpm
Description:
S-Jinn is a free, lightweight, open-source Linux application written in
C. It is a simple command-line tool designed for sending & receiving
data from PC controlled TIA/EIA-232 (RS-232) test, measurement,
and control devices.

Depending on your application you may be able to use stty or
C-Kermit, but I believe you will find that S-Jinn is easier-to-use,
more intuitive, and more concise in the area of command-line and/or
scripted RS-232 data acquisition and control.

Popular Linux communications packages like Minicom will also
communicate with RS-232 devices, but they are better suited to modems,
computers, network devices, etc. They typically lack support for any
combination of UART communication settings required by many of the
RS-232 test, measurement, and control devices on the market.

Most communications packages also lack command-line support. Some
provide scripting languages, but S-Jinn frees you from
application-specific languages. S-Jinn simply directs the data to
STDOUT where you can display it, pipe it, and/or redirect it to
be processed by your favorite Unix shell and/or scripting language
regardless of whether you prefer Bash, Python, Perl, Expect, or you
name it.

Other S-Jinn features include the ability to:

    * Control RS-232 DTR and RTS lines from the command-line

    * Display DTR, RTS, CTS & DSR status

    * Send control characters (including the NULL character)

    * Send values in hex

    * Specify read length

    * Set programmable delay times for both send & read.

    * Support for virtually all baud rates, parity, and data lengths
      found in standard PC UARTS

    * Output Formatting: ASCII, hex, ASCII-over-hex, wrap text,
      truncate lines, suppress trailing line feeds

Comment 2 Mario Blättermann 2011-04-29 13:32:50 UTC
From rpmlint:

sjinn.i686: E: incorrect-fsf-address /usr/share/doc/sjinn-1.01/COPYING

Common problem, see bug #697680 and bug #699586. Not a blocker though, but worth an upstream bug.

Looks fine so far.

---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    GPLv2+
[+] MUST: The License field in the package spec file must match the actual
license.
[+] MUST: The file containing the text of the license(s) for the package must
be included in %doc.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum *
    b38969d4a614b660919090ba0c8d5c7d  sjinn-1.01.tar.gz
    b38969d4a614b660919090ba0c8d5c7d  sjinn-1.01.tar.gz.packaged

[+] MUST: The package MUST successfully compile and build into binary rpms on
at least one primary architecture.
    - Succesful Koji build available:
    http://koji.fedoraproject.org/koji/taskinfo?taskID=3009531
[.] MUST: If the package does not successfully compile, build or work on an
architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
    - the basic build environment is sufficient here.

[.] MUST: The spec file MUST handle locales properly.
[.] MUST: If a package installs files below %{_datadir}/icons, the icon cache
must be updated.
[.] MUST: Packages storing shared library files (not just symlinks) must call
ldconfig in %post and %postun.
[.] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Packages must not provide RPM dependency information when that
information is not global in nature, or are otherwise handled.
[.] MUST: When filtering automatically generated RPM dependency information,
the filtering system implemented by Fedora must be used.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: If a package contains library files with a suffix (e.g.
libfoo.so.1.1), ...
[.] MUST: devel packages must require the base package using a fully versioned
dependency.
[.] MUST: Packages must NOT contain any .la libtool archives.
[.] MUST: Packages containing GUI applications must include a %{name}.desktop
file
[.] MUST: .desktop files must be properly installed with desktop-file-install
in the %install section.
[+] MUST: Packages must not own files or directories already owned by other
packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[.] SHOULD: If the source package does not include license text(s) as a
    separate file from upstream, the packager SHOULD query upstream...
[+] SHOULD: Timestamps of files should be preserved.
[+] SHOULD: The reviewer should test that the package builds in mock.
    See Koji build above (which uses mock anyway)
[+] SHOULD: The reviewer should test that the package functions as described.
    I assume the packager has tested it.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base
package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin,
/usr/bin, or /usr/sbin ...
[.] SHOULD: Your package should contain man pages for binaries/scripts.

----------------

PACKAGE APPROVED

----------------

Comment 3 Mario Blättermann 2011-04-29 13:41:48 UTC
Oops, just found a problem:

sjinn-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/sjinn/rs232.h
sjinn-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/sjinn/rs232main.c
sjinn-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/sjinn/rs232ctl.c
sjinn-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/sjinn/rs232opts.c

There remains an executable bit on the mentioned files in the debug package.

$ rpmlint -I spurious-executable-perm
spurious-executable-perm:
The file is installed with executable permissions, but was identified as one
that probably should not be executable.  Verify if the executable bits are
desired, and remove if not.

You should have a deeper look at this. Although you have removed the executable bits from the files in the spec, they remains on the files in the debug package.

I've removed the "approved" flag from this review request for the time being.

Comment 4 Mario Blättermann 2011-04-29 13:46:23 UTC
Found the problem probably. All the files in the tarball have the executable bit set. You should remove it generally from all files.

Comment 5 Martin Gieseking 2011-04-29 14:34:37 UTC
Have the patches been sent upstream? Please also add comments about what the patches do.
http://fedoraproject.org/wiki/PackagingGuidelines#All_patches_should_have_an_upstream_bug_link_or_comment


Please don't add the compressed manpage coming with the tarball. Decompress it in %prep and let rpmbuild choose the compression format. 
Also, decompress the example scripts and add the "scripts" folder with %doc.


Use the plain sed command instead of the macro:
http://fedoraproject.org/wiki/PackagingGuidelines#Macros


%{?_smp_mflags} and the definition of CFLAGS are not required in "make install".

Comment 6 John W. Linville 2011-04-29 15:38:59 UTC
Spec URL: http://linville.fedorapeople.org/sjinn.spec
SRPM URL: http://linville.fedorapeople.org/sjinn-1.01-2.fc14.src.rpm

Thanks for the reviews!

Comment 7 Mario Blättermann 2011-04-29 16:14:33 UTC
$ rpmlint -v *
sjinn.src: I: checking
sjinn.src: W: spelling-error %description -l en_US stty -> titty, atty, sty
sjinn.src: I: checking-url http://sjinn.sourceforge.net/ (timeout 10 seconds)
sjinn.src: I: checking-url http://downloads.sourceforge.net/sjinn/sjinn-1.01.tar.gz (timeout 10 seconds)
sjinn.i686: I: checking
sjinn.i686: W: spelling-error %description -l en_US stty -> titty, atty, sty
sjinn.i686: I: checking-url http://sjinn.sourceforge.net/ (timeout 10 seconds)
sjinn.i686: E: incorrect-fsf-address /usr/share/doc/sjinn-1.01/COPYING
sjinn-debuginfo.i686: I: checking
sjinn-debuginfo.i686: I: checking-url http://sjinn.sourceforge.net/ (timeout 10 seconds)
sjinn-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/sjinn/rs232main.c
sjinn-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/sjinn/rs232ctl.c
sjinn-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/sjinn/rs232opts.c
sjinn.spec: I: checking-url http://downloads.sourceforge.net/sjinn/sjinn-1.01.tar.gz (timeout 10 seconds)
3 packages and 1 specfiles checked; 4 errors, 2 warnings.

Besides some "spelling errors" and the old FSF address, it looks good now.

-------------------------

PACKAGE APPROVED (again!)

-------------------------

Comment 8 John W. Linville 2011-04-29 16:59:36 UTC
New Package SCM Request
=======================
Package Name: sjinn
Short Description: Simple tool for sending & receiving data from RS-232 devices
Owners: linville
Branches: f14 f15
InitialCC: linville

Comment 9 Jason Tibbitts 2011-04-30 18:09:55 UTC
Git done (by process-git-requests).

Comment 10 Fedora Update System 2011-05-02 17:46:28 UTC
sjinn-1.01-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/sjinn-1.01-2.fc15

Comment 11 Fedora Update System 2011-05-02 17:56:33 UTC
sjinn-1.01-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/sjinn-1.01-2.fc14

Comment 12 Fedora Update System 2011-05-10 21:21:50 UTC
sjinn-1.01-2.fc14 has been pushed to the Fedora 14 stable repository.

Comment 13 Fedora Update System 2011-05-19 04:42:58 UTC
sjinn-1.01-2.fc15 has been pushed to the Fedora 15 stable repository.