Bug 1484164

Summary: Review Request: libsocketpp - C++ Standard I/O TCP sockets
Product: [Fedora] Fedora Reporter: Charlie Sale <chucks.8090>
Component: Package ReviewAssignee: Neal Gompa <ngompa13>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: fedora, jwakely, ngompa13, package-review, rdieter
Target Milestone: ---Flags: ngompa13: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-13 14:39:22 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:
Bug Depends On:    
Bug Blocks: 177841    

Description Charlie Sale 2017-08-22 23:00:47 UTC
Spec URL: https://raw.githubusercontent.com/softwaresale/libsocketpp_rpm_build_files/master/libsocketpp-devel.spec

SRPM URL: https://raw.githubusercontent.com/softwaresale/libsocketpp_rpm_build_files/master/libsocketpp-devel-1.0.0-1.fc26.src.rpm

Description: Libsocketpp is a C++ development library for creating TCP sockets with the standard C++ I/O interface. This means that socket objects will behave like C++'s cout and cin. This project integrates well with existing C TCP socket code.

Note: This is my first package submission to the Fedora Project, so I will need a sponsor. I am the creator and packager for libsocketpp, so I am extra dedicated to the project and spend quite a lot of time on it. 

Also, the package is submitted is technically called libsocketpp-devel because it is a development library and not a standalone package. Please let me know what I need to do to fix this. Thanks!

Fedora Account System Username: softwaresale

Comment 1 Artur Frenszek-Iwicki 2017-08-23 22:48:28 UTC
>Group:		Development/Tools
The "Group:" tag should not be used.
https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections

>License:	GPL+
"GPL+" should only be used when upstream doesn't specify the licence version. You're using GPL v3 or later, so the tag should be "GPLv3+".
https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses

Comment 2 Charlie Sale 2017-08-24 01:38:40 UTC
Thanks. I'll get that fixed up. Quick question: because this is a development library, should I add the suffix "-devel" to my package or not?

Comment 3 Rex Dieter 2017-08-24 21:59:24 UTC
don't rename it, it's fine as-is

Comment 4 Charlie Sale 2017-08-24 22:13:54 UTC
Ok. Thanks!

Comment 5 Neal Gompa 2017-08-24 23:00:43 UTC
Well, actually, the package spec needs to be reorganized and the package does need to be slightly renamed...

Here's a relatively simple example of how a library package looks: https://src.fedoraproject.org/rpms/libbluray/blob/master/f/libbluray.spec

Comment 6 Charlie Sale 2017-08-25 01:59:28 UTC
Thanks. I'll get that fixed and uploaded very soon. Are any of you able to formally review my package or sponsor me? That would be really helpful...

Comment 8 Neal Gompa 2017-08-25 04:32:10 UTC
I can sponsor, and I'll take the review.

Comment 9 Charlie Sale 2017-08-25 10:48:14 UTC
Thanks a ton Neal. Let me know if you have 
any questions for me regarding sponsorship. My email is <chucks.8090>

Comment 10 Charlie Sale 2017-09-01 21:17:27 UTC
Hey Neal. Can I have an update on the review process of my package? Is there anything I can fix for you?

Comment 11 Neal Gompa 2017-09-13 09:42:21 UTC
> %autosetup -n %{name}-%{version}

This is redundant, just use "%autosetup", as "-n %{name}-%{version}" is the default

> make %{?_smp_mflags}

Use %make_build

> rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
> rm -f $RPM_BUILD_ROOT/%{_libdir}/libsocketpp.la

Use %{buildroot} instead of $RPM_BUILD_ROOT

> ldconfig

Use "/sbin/ldconfig"

> %postun
> ldconfig

Use "%postun -p /sbin/ldconfig"

Comment 12 Neal Gompa 2017-09-13 09:47:25 UTC
> %global gittag0 v1.0.0

This is unnecessary, as %{version} is already defined at 1.0.0

> Source0:        https://github.com/softwaresale/%{name}/archive/%{gittag0}/%{name}-%{version}.tar.gz

Change usage of "%{gittag0}" to "v%{version}". This lets you control the version bump from a single location.

Comment 13 Charlie Sale 2017-09-13 14:38:40 UTC
Hey Neal

I am actually retracting my submission due to C++20 releasing a networking library, which makes libsocketpp redundant and therefore unnecessary. Thanks for your time anyways!

Comment 14 Jonathan Wakely 2017-09-13 15:33:14 UTC
This code leaks memory and doesn't close sockets.

Fedora already has a number of mature C++ libraries providing similar functionality (boost-asio, asio, poco-net, ...) so I don't see why we would want this anyway.