Bug 1193175 - Review Request: skylable-sx - Scalable public and private cloud storage
Summary: Review Request: skylable-sx - Scalable public and private cloud storage
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-02-16 18:38 UTC by Török Edwin
Modified: 2015-05-22 17:58 UTC (History)
2 users (show)

Fixed In Version: skylable-sx-1.1-2.fc21
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-26 21:57:59 UTC
Type: ---
Embargoed:
tcallawa: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)
skylable-sx.spec (6.70 KB, text/plain)
2015-03-12 21:20 UTC, Török Edwin
no flags Details

Description Török Edwin 2015-02-16 18:38:03 UTC
Spec URL: http://vol-public.s3.indian.skylable.com:8008/fedorareview/skylable-sx.spec
SRPM URL: http://vol-public.s3.indian.skylable.com:8008/fedorareview/skylable-sx-1.0-4.fc21.src.rpm
Description:
Skylable Sx is a reliable, fully distributed cluster solution for your data
storage needs.

With Sx you can aggregate the disk space available on multiple servers and
merge it into a single storage system.
The cluster makes sure that your data is always replicated over multiple nodes
(the exact number of copies is defined by the sysadmin) and synchronized.

Additionally Sx has built-in support for deduplication, client-side encryption,
on-the-fly compression and much more.

Fedora Account System Username: edwintorok
Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=8953634

I am a co-founder of Skylable and part of upstream for this software.
This is my first package submission to Fedora.

Notes about the additional sources/patches in the spec file:
skylable-sx-1.0-post-release-fixes.patch: upstream post 1.0 packaging fixes
sxserver.patch: redirect to systemd instead of custom initscript
sx-nginx.service, sxserver.service: initially contributed by spot@
sxserver.conf: tmpfiles.d for /var/run/sxserver
sxserver.te, sxserver.if, sxserver.fc, sxserver_selinux.8: (permissive) SELinux policy to allow communication between nginx (httpd_t) and sx.fcgi (sxserver_t)

Note that I am not an expert on SELinux or systemd

Packages built:
skylable-sx: main server package, includes PDF manual; requires -client
skylable-sx-client: CLI clients for an SX cluster; requires -libs
skylable-sx-libs: libsx and filters (.so plugins)
skylable-sx-devel: headers and .so symlinks

Additional notes:
to setup a cluster on different machines you will need to update the firewall rules:
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload

Comment 1 Tom "spot" Callaway 2015-03-12 17:21:12 UTC
Check and resolve the few TODO items and I'll approve this package and sponsor you.

== Review ==
TODO items:

* Please make sure the systemd scripts work properly. This isn't a blocker, but I just didn't have the arrangement to test them out fully.
* The -devel package has these files in it:
/usr/lib64/sxclient/libsxf_aes256.so
/usr/lib64/sxclient/libsxf_attribs.so
/usr/lib64/sxclient/libsxf_undelete.so
/usr/lib64/sxclient/libsxf_zcomp.so

I know sometimes the .so files in a subdir of %{_libdir} are not devel libraries, but rather, plugin libraries/modules that are needed for proper operation. Please confirm that these files should be in the -devel subpackage.

* Spec says license is GPLv2, COPYING says it is "GPLv2 with exceptions and LGPLv2+ and BSD and MIT". Please correct the spec License field.

Good:

- rpmlint checks return:

skylable-sx.src: W: spelling-error Summary(en_US) Scalable -> Salable, Callable, Calculable
skylable-sx.src: W: spelling-error %description -l en_US deduplication -> reduplication, duplication, quadruplication

Safe to ignore.

skylable-sx.src:4: E: hardcoded-library-path in /usr/lib/systemd/system/sx-nginx.service
skylable-sx.src:5: E: hardcoded-library-path in /usr/lib/systemd/system/sxserver.service

Safe to ignore.

skylable-sx.x86_64: E: explicit-lib-dependency libselinux-utils

Safe to ignore, false positive.

skylable-sx.x86_64: W: spelling-error Summary(en_US) Scalable -> Salable, Callable, Calculable
skylable-sx.x86_64: W: spelling-error %description -l en_US deduplication -> reduplication, duplication, quadruplication

Safe to ignore.

skylable-sx.x86_64: E: non-readable /usr/share/selinux/packages/sxserver.pp 0600L

Fine. Selinux policy does not need to be +r.

skylable-sx.x86_64: W: non-ghost-in-run /run/sxserver

This is safe to ignore, package follows Fedora /run guidelines.

skylable-sx.x86_64: W: no-manual-page-for-binary sx.fcgi
skylable-sx.x86_64: W: no-manual-page-for-binary sxserver
skylable-sx.x86_64: W: no-manual-page-for-binary sxsetup
skylable-sx.x86_64: W: no-manual-page-for-binary sxreport-server
skylable-sx.x86_64: W: no-manual-page-for-binary sxadm
skylable-sx-client.x86_64: W: no-manual-page-for-binary sxsim

Upstream should consider writing man pages for these binaries, but it is not a blocker for Fedora/EPEL.

skylable-sx-client.x86_64: W: non-standard-group Cloud Infrastructure

Group is unused, this is safe to ignore.

skylable-sx-devel.x86_64: W: only-non-binary-in-usr-lib

Safe to ignore.

- package meets naming guidelines
- package meets packaging guidelines (except license tag, see above)
- spec file legible, in am. english
- source matches upstream (ba96db807c1ff1265a7476d31c2d7fbb14a9a3f3bc55950e1c8da7edaa00a98a)
- package compiles on F-22 (x86_64)
- no missing BR
- no unnecessary BR
- no locales
- not relocatable
- owns all directories that it creates
- no duplicate files
- permissions ok
- macro use consistent
- code, not content
- no need for -docs
- nothing in %doc affects runtime
- no need for .desktop file 
- devel package ok
- no .la files
- post/postun ldconfig ok
- devel requires libs package n-v-r

Comment 2 Török Edwin 2015-03-12 21:19:03 UTC
(In reply to Tom "spot" Callaway from comment #1)
> Check and resolve the few TODO items and I'll approve this package and
> sponsor you.

Thanks a lot for reviewing the package!

> 
> == Review ==
> TODO items:

New SRPM: http://vol-public.s3.indian.skylable.com:8008/fedorareview/skylable-sx-1.0-5.fc22.src.rpm
New koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=9212411

> 
> * Please make sure the systemd scripts work properly. This isn't a blocker,
> but I just didn't have the arrangement to test them out fully.

Works, tested on F22 Workstation Alpha, see below [1].

> * The -devel package has these files in it:
> /usr/lib64/sxclient/libsxf_aes256.so
> /usr/lib64/sxclient/libsxf_attribs.so
> /usr/lib64/sxclient/libsxf_undelete.so
> /usr/lib64/sxclient/libsxf_zcomp.so
> 
> I know sometimes the .so files in a subdir of %{_libdir} are not devel
> libraries, but rather, plugin libraries/modules that are needed for proper
> operation. Please confirm that these files should be in the -devel
> subpackage.

I confirm that the real plugins are in the -libs package, and they work even if -devel is not installed, see [2]:
/usr/lib64/sxclient/libsxf_aes256-13.so
/usr/lib64/sxclient/libsxf_attribs-11.so
/usr/lib64/sxclient/libsxf_undelete-11.so
/usr/lib64/sxclient/libsxf_zcomp-10.so

> 
> * Spec says license is GPLv2, COPYING says it is "GPLv2 with exceptions and
> LGPLv2+ and BSD and MIT". Please correct the spec License field.

Updated the License field to:
main package and -client:
License: GPLv2 with exceptions and LGPLv2+ and BSD and MIT
-devel: License: LGPLv2+ with exceptions
-libs: License: LGPLv2+ with exceptions and MIT

> 
> Good:
> skylable-sx.x86_64: W: no-manual-page-for-binary sx.fcgi
> skylable-sx.x86_64: W: no-manual-page-for-binary sxserver
> skylable-sx.x86_64: W: no-manual-page-for-binary sxsetup
> skylable-sx.x86_64: W: no-manual-page-for-binary sxreport-server
> skylable-sx.x86_64: W: no-manual-page-for-binary sxadm
> skylable-sx-client.x86_64: W: no-manual-page-for-binary sxsim
> 
> Upstream should consider writing man pages for these binaries, but it is not
> a blocker for Fedora/EPEL.

We have this on our roadmap for version 1.1: https://bugzilla.skylable.com/show_bug.cgi?id=1136

[1] How to test systemd units
# sxsetup
[...]
Enter the cluster name (use the same across all nodes) []: testme
[... accept defaults...]
# systemctl status sxserver sx-nginx
● sxserver.service - Scalable public and private cloud storage server
   Loaded: loaded (/usr/lib/systemd/system/sxserver.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2015-03-12 22:45:14 EET; 1min 25s ago
   [...]
● sx-nginx.service - The SX nginx HTTP server instance
   Loaded: loaded (/usr/lib/systemd/system/sx-nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2015-03-12 22:45:15 EET; 1min 25s ago
   [...]
# systemctl stop sxserver
# systemctl status sxserver sx-nginx
● sxserver.service - Scalable public and private cloud storage server
   Loaded: loaded (/usr/lib/systemd/system/sxserver.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
    [...]
● sx-nginx.service - The SX nginx HTTP server instance
   Loaded: loaded (/usr/lib/systemd/system/sx-nginx.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
# systemctl start sxserver
# systemctl status sxserver sx-nginx
● sxserver.service - Scalable public and private cloud storage server
   Loaded: loaded (/usr/lib/systemd/system/sxserver.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2015-03-12 22:47:44 EET; 1s ago
   [...]
● sx-nginx.service - The SX nginx HTTP server instance
   Loaded: loaded (/usr/lib/systemd/system/sx-nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2015-03-12 22:47:44 EET; 951ms ago

After a reboot the service is not running, however after running
'sudo systemctl enable sxserver' and rebooting it will (this should be consistent with how sshd behaves).

[2] Testing plugins (filters)
# sudo sxvol filter
Name		Ver	Type		Short description
----		---	----		-----------------
attribs     	1.1	generic		Preserve file attributes
aes256      	1.4	crypt		Encrypt data using AES-256-CBC-HMAC-512 mode.
zcomp       	1.0	compress	Compress files using zlib
undelete    	1.1	generic		Backup removed files

# sxvol create -o admin -r 1 -f aes256 -s 10G sx://admin@testme/enc
[aes256]: Enter encryption password:
[aes256]: Re-enter encryption password:
Volume 'enc' (replica: 1, size: 10G, max-revisions: 1) created.
# sxcp /etc/redhat-release sx://admin@testme/enc/
Uploading /etc/redhat-release (size: 80B)
Transferred 4KB in <1s (@127.52KB/s)
# sxcp sx://admin@testme/enc/redhat-release .
Downloading redhat-release (size: 80B)
Transferred 4KB in <1s (@215.73KB/s)

Comment 3 Török Edwin 2015-03-12 21:20:24 UTC
Created attachment 1001206 [details]
skylable-sx.spec

Comment 4 Tom "spot" Callaway 2015-03-17 20:21:36 UTC
APPROVED. Thanks for being patient on this one, it normally doesn't take me quite that long. :)

I've just added you to the packager group, please continue the process from here:

http://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Get_Sponsored

Comment 5 Török Edwin 2015-03-17 21:28:35 UTC
New Package SCM Request
=======================
Package Name: skylable-sx
Short Description: Scalable public and private cloud storage
Upstream URL: http://www.skylable.com/products/sx
Owners: edwintorok
Branches: f21 f22
InitialCC: edwintorok

Comment 6 Gwyn Ciesla 2015-03-18 11:17:21 UTC
Git done (by process-git-requests).

Comment 7 Fedora Update System 2015-03-19 15:12:08 UTC
skylable-sx-1.0-7.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/skylable-sx-1.0-7.fc22

Comment 8 Fedora Update System 2015-03-21 05:00:20 UTC
skylable-sx-1.0-7.fc22 has been pushed to the Fedora 22 testing repository.

Comment 9 Fedora Update System 2015-03-26 21:57:59 UTC
skylable-sx-1.0-7.fc22 has been pushed to the Fedora 22 stable repository.

Comment 10 Fedora Update System 2015-05-12 17:52:59 UTC
skylable-sx-1.1-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/skylable-sx-1.1-1.fc21

Comment 11 Fedora Update System 2015-05-13 14:29:45 UTC
skylable-sx-1.1-2.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/skylable-sx-1.1-2.fc21

Comment 12 Fedora Update System 2015-05-22 17:58:50 UTC
skylable-sx-1.1-2.fc21 has been pushed to the Fedora 21 stable repository.


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