Bug 1302504

Summary: Review Request: elog - Logbook system to manage notes through a Web interface
Product: [Fedora] Fedora Reporter: Ben Rosser <rosser.bjr>
Component: Package ReviewAssignee: Antonio T. (sagitter) <anto.trande>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: package-review
Target Milestone: ---Flags: anto.trande: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-18 18:30:35 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 Ben Rosser 2016-01-28 01:23:59 UTC
Spec URL: https://tc01.fedorapeople.org/elog/elog.spec

SRPM URL: https://tc01.fedorapeople.org/elog/elog-3.1.1-3.fc22.src.rpm

Description:

ELOG is part of a family of applications known as weblogs. Their general
purpose is:

1. To make it easy for people to put information online in a chronological
fashion, in the form of short, time-stamped text messages ("entries") with
optional HTML markup for presentation, and optional file attachments
(images, archives, etc.)

2. To make it easy for other people to access this information through a
Web interface, browse entries, search, download files, and optionally add,
update, delete or comment on entries.

ELOG is a remarkable implementation of a weblog in at least two respects:

1. Its simplicity of use: you don't need to be a seasoned server operator
and/or an experimented database administrator to run ELOG ; one executable
file (under Unix or Windows), a simple configuration text file, and it works.
No Web server or relational database required. It is also easy to translate
the interface to the appropriate language for your users.

2. Its versatility: through its single configuration file, ELOG can be made
to display an infinity of variants of the weblog concept. There are options
for what to display, how to display it, what commands are available and to
whom, access control, etc. Moreover, a single server can host several
weblogs, and each weblog can be totally different from the rest.

Fedora Account System Username: tc01

elog contains both a client ("elog") and server ("elogd"). I've chosen for the moment to put elog and its manpage in the elog-client subpackage; just installing "elog" installs the server (with a dependency on elog-client). This may be the wrong way to do it; but since the server seems to be the "main" part of the software it seemed more reasonable to me that the "elog" package should install said server.

This package is currently available from COPR here if you want to test it: https://copr.fedorainfracloud.org/coprs/tc01/elog/.

$ rpmlint ../RPMS/x86_64/elog-3.1.1-3.fc22.x86_64.rpm 
elog.x86_64: W: spelling-error Summary(en_US) Weblog -> Web log, Web-log, We blog
elog.x86_64: W: spelling-error %description -l en_US weblogs -> we blogs, we-blogs, web logs
elog.x86_64: W: spelling-error %description -l en_US weblog -> we blog, we-blog, web log
elog.x86_64: W: invalid-url URL: https://midas.psi.ch/elog/ <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
elog.x86_64: E: incorrect-fsf-address /usr/share/licenses/elog/COPYING
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/elog.css
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/tiny.css
elog.x86_64: W: file-not-utf8 /usr/share/doc/elog/doc/strftime.txt
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/compact.css
elog.x86_64: W: dangerous-command-in-%post chown
1 packages and 0 specfiles checked; 4 errors, 6 warnings.

I notified upstream about the invalid FSF address; it's been fixed in git.

The "dangerous command in post" is because the elog package creates and wants to run under an "elog" user, and then needs to chown its files to said user. Is there a better way to do this that won't produce that rpmlint output?

elog had a bundled copy of ckeditor that I have removed and replaced with a symlink (that gets created in %post as well).

Comment 1 Ben Rosser 2016-06-04 02:39:28 UTC
Updated with a bunch of fixes:

- Use attr to set ownership on /usr/share/elog.
- Fixed typo in systemd service file URL
- Revised package summaries.
- Moved elogs out of datadir and into /var/lib.

Spec URL: https://tc01.fedorapeople.org/elog/elog.spec
SRPM URL: https://tc01.fedorapeople.org/elog/elog-3.1.1-4.fc23.src.rpm

This addresses the "dangerous command in post" warning (by using the correct method, %attr, to set ownership). I also moved the logbooks into /var/lib/elog instead of /usr/share/elog, as that directory should be read-only.

Comment 2 Antonio T. (sagitter) 2016-06-08 17:20:43 UTC
Package Review
==============

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


Issues:
=======
- Large documentation must go in a -doc subpackage. Large could be size
  (~1MB) or number of files.
  Note: Documentation size is 1280000 bytes in 24 files.
  See:
  http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation

- Upstream reports a GPLv3 license (https://midas.psi.ch/elog/#license)
  In the source archive, exists a GPLv2 COPYING file ??
  Some .c and .h files are release under GPLv2+ and GPLv3+

  If main license is GPLv2, the RPMs should be release with
  "GPLv2 and GPLv3+"

  If main license is GPLv3, the RPMs should be release with
  GPLv3+

- elog-client is a standalone package without an own license file

- Binary files are "No full Relro" and "No PIE"
  Probably LDFLAGS are not properly set

- "rm -rf %{buildroot}" present but not required

- PREFIX=%{_usr}  ??

- Systemd scriptlets are missing
  https://fedoraproject.org/wiki/Packaging:Scriptlets?rd=Packaging:ScriptletSnippets#Systemd

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

C/C++:
[?]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[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.
[?]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GPL (v2 or later) (with incorrect FSF address)", "GPL (v3 or
     later)", "Unknown or generated". 19 files have unknown license.
     Detailed output of licensecheck in
     /home/sagitter/1302504-elog/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/systemd/system,
     /usr/lib/systemd
[!]: %build honors applicable compiler flags or justifies otherwise.
[?]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[!]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required
[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.
[!]: 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]: 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 %license.
[x]: Package requires other packages for directories it uses.
[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]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[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 does not use a name that already exists.
[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:
[?]: 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]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in elog-
     client , elog-debuginfo
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: 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.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 2191360 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: elog-3.1.1-4.fc25.x86_64.rpm
          elog-client-3.1.1-4.fc25.x86_64.rpm
          elog-debuginfo-3.1.1-4.fc25.x86_64.rpm
          elog-3.1.1-4.fc25.src.rpm
elog.x86_64: W: spelling-error %description -l en_US weblogs -> we blogs, we-blogs, web logs
elog.x86_64: W: spelling-error %description -l en_US weblog -> we blog, we-blog, web log
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/compact.css
elog.x86_64: E: incorrect-fsf-address /usr/share/licenses/elog/COPYING
elog.x86_64: W: non-standard-uid /var/lib/elog/logbooks elog
elog.x86_64: W: non-standard-gid /var/lib/elog/logbooks elog
elog.x86_64: W: non-standard-uid /var/lib/elog elog
elog.x86_64: W: non-standard-gid /var/lib/elog elog
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/elog.css
elog.x86_64: W: file-not-utf8 /usr/share/doc/elog/doc/strftime.txt
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/tiny.css
elog.x86_64: W: dangling-symlink /usr/share/elog/scripts/ckeditor /usr/share/ckeditor
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elog.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elogd.c
elog.src: W: spelling-error %description -l en_US weblogs -> we blogs, we-blogs, web logs
elog.src: W: spelling-error %description -l en_US weblog -> we blog, we-blog, web log
4 packages and 0 specfiles checked; 6 errors, 14 warnings.




Rpmlint (debuginfo)
-------------------
Checking: elog-debuginfo-3.1.1-4.fc25.x86_64.rpm
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elogd.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elog.c
1 packages and 0 specfiles checked; 2 errors, 4 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
elog.x86_64: W: spelling-error %description -l en_US weblogs -> we blogs, we-blogs, web logs
elog.x86_64: W: spelling-error %description -l en_US weblog -> we blog, we-blog, web log
elog.x86_64: W: non-standard-uid /var/lib/elog elog
elog.x86_64: W: non-standard-gid /var/lib/elog elog
elog.x86_64: W: dangling-symlink /usr/share/elog/scripts/ckeditor /usr/share/ckeditor
elog.x86_64: W: file-not-utf8 /usr/share/doc/elog/doc/strftime.txt
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/elog.css
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/compact.css
elog.x86_64: E: script-without-shebang /usr/share/elog/themes/default/tiny.css
elog.x86_64: E: incorrect-fsf-address /usr/share/licenses/elog/COPYING
elog.x86_64: W: non-standard-uid /var/lib/elog/logbooks elog
elog.x86_64: W: non-standard-gid /var/lib/elog/logbooks elog
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elog.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.h
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/elog-3.1.1/src/regex.c
elog-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/elog-3.1.1/src/elogd.c
3 packages and 0 specfiles checked; 6 errors, 12 warnings.



Requires
--------
elog (rpmlib, GLIBC filtered):
    /bin/sh
    ckeditor
    config(elog)
    elog-client
    libc.so.6()(64bit)
    libssl.so.10()(64bit)
    rtld(GNU_HASH)
    shadow-utils

elog-client (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libssl.so.10()(64bit)
    rtld(GNU_HASH)

elog-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
elog:
    config(elog)
    elog
    elog(x86-64)

elog-client:
    elog-client
    elog-client(x86-64)

elog-debuginfo:
    elog-debuginfo
    elog-debuginfo(x86-64)



Source checksums
----------------
http://midas.psi.ch/elog/download/tar/elog-3.1.1-1.tar.gz :
  CHECKSUM(SHA256) this package     : 2b1bc1c9f34547aad7ed22c726dcfee9c633bc1056e08e10074059d147ed5be1
  CHECKSUM(SHA256) upstream package : 2b1bc1c9f34547aad7ed22c726dcfee9c633bc1056e08e10074059d147ed5be1
https://tc01.fedorapeople.org/elog/elogd.service :
  CHECKSUM(SHA256) this package     : 28474049a286571ac79704c7efb2eb1dd8aaea303b46949c075de2e36161c316
  CHECKSUM(SHA256) upstream package : 28474049a286571ac79704c7efb2eb1dd8aaea303b46949c075de2e36161c316


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1302504
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 3 Ben Rosser 2016-06-10 18:00:02 UTC
Spec URL: https://tc01.fedorapeople.org/elog/elog.spec
SRPM URL: https://tc01.fedorapeople.org/elog/elog-3.1.1-5.fc23.src.rpm

All of the above should be fixed:

- Add license to the elog-client subpackage
- Remove manual cleanup of the buildroot
- Created -doc subpackage for the documentation
- Added systemd snippets for elogd.service
- Changed _usr to _prefix when running make install.
- Manually set LIBS=%{__global_ldflags} in order to pass LDFLAGS to the makefile
- Changed license tag to GPLv2 and GPLv3+

Comment 4 Antonio T. (sagitter) 2016-06-12 09:58:08 UTC
Please, fix 'file-not-utf8' and 'spurious-executable-perm' warnings.

Package approved.

Comment 5 Antonio T. (sagitter) 2016-06-12 10:07:33 UTC
Binary files are still "No PIE"

Comment 6 Antonio T. (sagitter) 2016-06-12 10:48:23 UTC
(In reply to Antonio Trande from comment #5)
> Binary files are still "No PIE"

I checked again, binary files are good.
I can definitively do pass this review.

Comment 7 Ben Rosser 2016-06-12 19:56:24 UTC
Thanks for the review! I will fix those on import.

Comment 8 Gwyn Ciesla 2016-06-13 13:22:39 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/elog

Comment 9 Fedora Update System 2016-06-13 19:38:42 UTC
elog-3.1.1-5.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-323afbeadb

Comment 10 Fedora Update System 2016-06-13 19:39:27 UTC
elog-3.1.1-5.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-d432cbcf44

Comment 11 Fedora Update System 2016-06-13 20:06:34 UTC
elog-3.1.1-5.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b8a53f56ab

Comment 12 Fedora Update System 2016-06-14 03:57:27 UTC
elog-3.1.1-5.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-323afbeadb

Comment 13 Fedora Update System 2016-06-14 15:58:54 UTC
elog-3.1.1-5.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-d432cbcf44

Comment 14 Fedora Update System 2016-06-14 15:59:26 UTC
elog-3.1.1-5.fc22 has been pushed to the Fedora 22 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b8a53f56ab

Comment 15 Fedora Update System 2016-06-14 19:29:24 UTC
elog-3.1.1-5.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-073012b743

Comment 16 Fedora Update System 2016-06-16 15:18:55 UTC
elog-3.1.1-5.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-073012b743

Comment 17 Fedora Update System 2016-06-18 18:30:32 UTC
elog-3.1.1-5.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 18 Fedora Update System 2016-06-23 04:53:50 UTC
elog-3.1.1-5.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 19 Fedora Update System 2016-06-23 05:19:52 UTC
elog-3.1.1-5.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2016-07-03 14:19:19 UTC
elog-3.1.1-5.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.