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
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
(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)
Created attachment 1001206 [details] skylable-sx.spec
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
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
Git done (by process-git-requests).
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
skylable-sx-1.0-7.fc22 has been pushed to the Fedora 22 testing repository.
skylable-sx-1.0-7.fc22 has been pushed to the Fedora 22 stable repository.
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
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
skylable-sx-1.1-2.fc21 has been pushed to the Fedora 21 stable repository.