Bug 1059803

Summary: Review Request: sniproxy - Transparent TLS proxy
Product: [Fedora] Fedora Reporter: Nikos Mavrogiannopoulos <nmavrogi>
Component: Package ReviewAssignee: Christopher Meng <i>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: i, misc, package-review
Target Milestone: ---Flags: i: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: sniproxy-0.1-3.git0d71fca.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-03-21 12:53:30 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 Nikos Mavrogiannopoulos 2014-01-30 17:02:34 UTC
Spec URL: http://people.redhat.com/nmavrogi/fedora/sniproxy.spec
SRPM URL: http://people.redhat.com/nmavrogi/fedora/sniproxy-0.1-1.gitb341be8.fc20.src.rpm
Description: Proxies incoming HTTP and TLS connections based on the hostname contained in the initial request. This enables HTTPS name based virtual hosting to seperate backend servers without the installing the private key on the proxy machine.
Fedora Account System Username: nmav

Comment 1 Michael S. 2014-01-30 20:46:45 UTC
Hi,
so :
- BuildRoot is no longer used

- the license should be shipped in %doc 

- adding a few others files for documentation would be nice

- %changelog is empty

- rm -rf %{buildroot} in %install is not needed

- why does it buildRequires curl and perl 

- %configure CFLAGS="-I/usr/include/libev"
seems wrong, since it erase the CFLAGS set by configure.
Try instead :
export CFLAGS="-I/usr/include/libev"
%configure

- why is there a patch, was it sent upstream ? ( cause I see it fix various bugs, but we should document the fact it was sent upstream if that's the case, and send it if that's not the case ( and go back to case 1 ))

Comment 2 Nikos Mavrogiannopoulos 2014-01-31 11:26:49 UTC
(In reply to Michael Scherer from comment #1)
> Hi,
> so :
> - BuildRoot is no longer used
> - the license should be shipped in %doc 
> - %changelog is empty
> - rm -rf %{buildroot} in %install is not needed

Thanks. I've updated it in:
http://people.redhat.com/nmavrogi/fedora/

> - adding a few others files for documentation would be nice

I plan to add a manpage or so as well.
 
> - why does it buildRequires curl and perl 

It does need them for make check (which is now executed)

> - %configure CFLAGS="-I/usr/include/libev"
> seems wrong, since it erase the CFLAGS set by configure.

I removed that completely by patching it to use pkg-config.

> - why is there a patch, was it sent upstream ? ( cause I see it fix various
> bugs, but we should document the fact it was sent upstream if that's the
> case, and send it if that's not the case ( and go back to case 1 ))

Indeed, I'm in contact with upstream. The version added will most probably have some of the changes at upstream.

Comment 3 Nikos Mavrogiannopoulos 2014-02-06 10:09:33 UTC
Updated yet again. This should handle all outstanding issues.

http://people.redhat.com/nmavrogi/fedora/sniproxy-0.1-1.git0d71fca.fc20.src.rpm
http://people.redhat.com/nmavrogi/fedora/sniproxy.spec

Comment 4 Nikos Mavrogiannopoulos 2014-02-20 12:59:32 UTC
Hello,
 I've cleared the review flag as it is quite some time since I received a response.

Comment 5 Michael S. 2014-02-20 19:39:11 UTC
Oh, sorry, I did totally miss that mail :/ 

yeah, you did it right, I will restart if I have the time but for now, no need to prevent anyone from taking it.

Comment 6 Christopher Meng 2014-02-21 07:08:48 UTC
1. autoreconf -fi


Please append v as -fiv for verbose output.

2. Common order for sections:

%prep

%build

%install

%check

%pre

%...

I have no idea if someone prefer give them a random order, but this is just a suggestion, as when you leave the community someone trys to take over he won't get lost too much ;)

3. No slash after %buildroot macro please

For big update, please bump the release number no matter it's under review or not.

Scratch build for reference: http://koji.fedoraproject.org/koji/taskinfo?taskID=6555268

Comment 7 Nikos Mavrogiannopoulos 2014-02-21 08:12:25 UTC
Thanks. I've added a "-2" version that fixes the issues (including the compilation ones).

Comment 9 Nikos Mavrogiannopoulos 2014-02-26 09:09:42 UTC
Hello,
 Is there some way I can help to speed this process up?

Comment 10 Michael S. 2014-02-26 23:45:04 UTC
(still no time, so removing myself from assignment, sorry Nikos for the false hope)

Comment 11 Christopher Meng 2014-02-27 02:33:37 UTC
I'm busy also, but will finish it in a week.

Comment 12 Nikos Mavrogiannopoulos 2014-03-17 08:52:18 UTC
Hello,
 Is that package still under review?

Comment 13 Christopher Meng 2014-03-20 14:53:28 UTC
(In reply to Nikos Mavrogiannopoulos from comment #12)
> Hello,
>  Is that package still under review?

Sorry, you probably need to wait at least 1 day because my computer is broken now.

Comment 14 Christopher Meng 2014-03-21 03:25:34 UTC
++ pkg-config libev --cflags
Package libev was not found in the pkg-config search path.
Perhaps you should add the directory containing `libev.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libev' found

Comment 15 Nikos Mavrogiannopoulos 2014-03-21 07:59:20 UTC
Hello, it seems that meanwhile libev dropped pkg-config support. I've put a -3 version that directly uses the required cflags.

http://people.redhat.com/nmavrogi/fedora/sniproxy-0.1-3.git0d71fca.fc20.src.rpm
http://people.redhat.com/nmavrogi/fedora/sniproxy.spec

Comment 16 Christopher Meng 2014-03-21 08:28:59 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated




===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "BSD (2 clause)", "Unknown or generated". 10 files have unknown license.
     Detailed output of licensecheck:

BSD (2 clause)
--------------
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/address.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/address.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/backend.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/backend.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/binder.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/binder.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/buffer.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/buffer.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/cfg_parser.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/cfg_parser.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/cfg_tokenizer.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/cfg_tokenizer.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/config.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/config.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/connection.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/connection.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/http.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/http.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/listener.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/listener.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/logger.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/logger.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/protocol.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/server.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/server.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/sniproxy.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/sniproxy.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/table.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/table.h
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/tls.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/src/tls.h

Unknown or generated
--------------------
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/autogen.sh
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/TestHTTPD.pm
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/TestUtils.pm
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/address_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/binder_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/buffer_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/cfg_tokenizer_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/config_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/http_test.c
sniproxy-0d71fcaa089f884b53540af8773c97ffd7efb327/tests/tls_test.c

[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 3 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: 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 is included in %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: sniproxy-0.1-3.git0d71fca.fc21.i686.rpm
          sniproxy-0.1-3.git0d71fca.fc21.src.rpm
sniproxy.i686: W: only-non-binary-in-usr-lib
sniproxy.i686: W: no-manual-page-for-binary sniproxy
2 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint sniproxy
sniproxy.i686: W: only-non-binary-in-usr-lib
sniproxy.i686: W: no-manual-page-for-binary sniproxy
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
# echo 'rpmlint-done:'



Requires
--------
sniproxy (rpmlib, GLIBC filtered):
    /bin/sh
    config(sniproxy)
    libc.so.6
    libev.so.4
    libpcre.so.1
    rtld(GNU_HASH)
    shadow-utils
    systemd



Provides
--------
sniproxy:
    config(sniproxy)
    sniproxy
    sniproxy(x86-32)



Source checksums
----------------
https://github.com/dlundquist/sniproxy/archive/0d71fcaa089f884b53540af8773c97ffd7efb327/sniproxy-0.1-0d71fca.tar.gz :
  CHECKSUM(SHA256) this package     : 634b944a1deac8d9d973c451893e2e21252bf77bdd4f7ccdc3ba159651985ead
  CHECKSUM(SHA256) upstream package : 634b944a1deac8d9d973c451893e2e21252bf77bdd4f7ccdc3ba159651985ead


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -rvn sniproxy-0.1-3.git0d71fca.fc20.src.rpm
Buildroot used: fedora-rawhide-i386
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

----------------------------------
rpmlint can be ignored due to bug 794777.

PACKAGE APPROVED.

Comment 17 Nikos Mavrogiannopoulos 2014-03-21 08:32:51 UTC
(In reply to Christopher Meng from comment #16)
> Package Review
> ==============
> PACKAGE APPROVED.

Thank you.

Comment 18 Nikos Mavrogiannopoulos 2014-03-21 08:33:10 UTC
New Package SCM Request
=======================
Package Name: sniproxy
Short Description: Transparent TLS proxy
Owners: nmav
Branches: f20
InitialCC:

Comment 19 Gwyn Ciesla 2014-03-21 11:57:51 UTC
Git done (by process-git-requests).

Comment 20 Fedora Update System 2014-03-21 13:10:56 UTC
sniproxy-0.1-3.git0d71fca.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/sniproxy-0.1-3.git0d71fca.fc20

Comment 21 Fedora Update System 2014-04-02 09:10:33 UTC
sniproxy-0.1-3.git0d71fca.fc20 has been pushed to the Fedora 20 stable repository.

Comment 22 Nikos Mavrogiannopoulos 2014-08-08 13:39:40 UTC
Package Change Request
======================
Package Name: sniproxy
New Branches: epel7
Owners: nmav

Comment 23 Gwyn Ciesla 2014-08-08 16:21:44 UTC
Git done (by process-git-requests).