Bug 1582983 (termy-server) - Review Request: termy-server - TermySequence terminal multiplexer server
Summary: Review Request: termy-server - TermySequence terminal multiplexer server
Keywords:
Status: CLOSED ERRATA
Alias: termy-server
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Rex Dieter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: termy-qt
TreeView+ depends on / blocked
 
Reported: 2018-05-28 03:25 UTC by Eamon Walsh
Modified: 2018-09-21 05:26 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-09-11 19:31:23 UTC
Type: ---
Embargoed:
rdieter: fedora-review+


Attachments (Terms of Use)

Description Eamon Walsh 2018-05-28 03:25:07 UTC
Spec URL: https://termysequence.io/fedora/termy-server.spec
SRPM URL: https://termysequence.io/fedora/termy-server-1.0.2-1.fc28.src.rpm

Description: A multiplexing terminal emulator server implementing
the TermySequence protocol. TermySequence is a terminal emulation system with a focus on connectivity, productivity, and collaboration.

Fedora Account System Username: ewalsh

Comment 1 Eamon Walsh 2018-05-28 03:40:14 UTC
This is my first package, need sponsor.

Available in COPR:
https://copr.fedorainfracloud.org/coprs/ewalsh/termysequence/

Koji scratch builds:
f28 https://koji.fedoraproject.org/koji/taskinfo?taskID=27249660
f29 https://koji.fedoraproject.org/koji/taskinfo?taskID=27249793

Comment 2 Eamon Walsh 2018-05-29 17:48:23 UTC
Also, I am the upstream author and maintainer.

Comment 3 Michael Cronenworth 2018-06-03 16:51:06 UTC
Sorry, I just saw you need a sponsor. Unfortunately I am not one. I can review it, but you'll need to ask for a sponsor.

Comment 4 Eamon Walsh 2018-06-04 00:11:42 UTC
Yes, that is fine. I made some comments on #1585365.

Comment 5 Michael Cronenworth 2018-06-04 18:29:22 UTC
Outstanding issues:

1. The termy-shell-integration-bash package is not providing a license that matches the file. The shell script is licensed as MIT.
2. You're compiling against a bundled library, and while it is some-what allowed now, I suggest using the Fedora package unless there is a reason against it:
Add 'rm -rf vendor/utf8cpp' to %prep and BuildRequires: utf8cpp-devel

Comment 6 Eamon Walsh 2018-06-05 10:14:54 UTC
Spec URL: https://termysequence.io/fedora/termy-server.spec
SRPM URL: https://termysequence.io/fedora/termy-server-1.0.3-1.fc28.src.rpm

The utf8cpp "library" is actually just header files, there is no shared object. So bundling it makes no difference, but I went ahead and unbundled it.

Comment 7 Michael Cronenworth 2018-06-05 16:32:42 UTC
Looks good. If I was a sponsor I would approve. I'll unassign myself so someone else can take it.


Package Review
==============

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

===== 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: "MIT/X11 (BSD like)", "GPL (v2)", "Unknown or generated", "*No
     copyright* CC by (v4.0)". 974 files have unknown license. Detailed
     output of licensecheck in
     /home/michael/Projects/fedora/provenpackager/1582983-termy-
     server/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: /etc/profile.d
[x]: Package does not own files or directories owned by other packages.
[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]: 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 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]: 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]: 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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[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: Fully versioned dependency in subpackages if applicable.
[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]: 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]: 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:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: termy-server-1.0.3-1.fc29.x86_64.rpm
          termy-shell-integration-bash-1.0.3-1.fc29.noarch.rpm
          termy-server-debuginfo-1.0.3-1.fc29.x86_64.rpm
          termy-server-debugsource-1.0.3-1.fc29.x86_64.rpm
          termy-server-1.0.3-1.fc29.src.rpm
termy-shell-integration-bash.noarch: W: summary-not-capitalized C iTerm2-compatible bash integration for TermySequence
termy-shell-integration-bash.noarch: W: no-documentation
termy-shell-integration-bash.noarch: W: non-conffile-in-etc /etc/profile.d/termy_shell_integration.sh
5 packages and 0 specfiles checked; 0 errors, 3 warnings.




Rpmlint (debuginfo)
-------------------
Checking: termy-server-debuginfo-1.0.3-1.fc29.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
termy-server.x86_64: W: invalid-url URL: https://termysequence.io <urlopen error [Errno -2] Name or service not known>
termy-shell-integration-bash.noarch: W: summary-not-capitalized C iTerm2-compatible bash integration for TermySequence
termy-shell-integration-bash.noarch: W: invalid-url URL: https://termysequence.io <urlopen error [Errno -2] Name or service not known>
termy-shell-integration-bash.noarch: W: no-documentation
termy-shell-integration-bash.noarch: W: non-conffile-in-etc /etc/profile.d/termy_shell_integration.sh
termy-server-debugsource.x86_64: W: invalid-url URL: https://termysequence.io <urlopen error [Errno -2] Name or service not known>
termy-server-debuginfo.x86_64: W: invalid-url URL: https://termysequence.io <urlopen error [Errno -2] Name or service not known>
4 packages and 0 specfiles checked; 0 errors, 7 warnings.



Requires
--------
termy-server (rpmlib, GLIBC filtered):
    /bin/bash
    /bin/sh
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libsystemd.so.0()(64bit)
    libsystemd.so.0(LIBSYSTEMD_209)(64bit)
    libsystemd.so.0(LIBSYSTEMD_221)(64bit)
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    rtld(GNU_HASH)
    systemd

termy-shell-integration-bash (rpmlib, GLIBC filtered):
    termy-server

termy-server-debugsource (rpmlib, GLIBC filtered):

termy-server-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
termy-server:
    termy-server
    termy-server(x86-64)

termy-shell-integration-bash:
    termy-shell-integration-bash

termy-server-debugsource:
    termy-server-debugsource
    termy-server-debugsource(x86-64)

termy-server-debuginfo:
    debuginfo(build-id)
    termy-server-debuginfo
    termy-server-debuginfo(x86-64)



Source checksums
----------------
https://termysequence.io/releases/termysequence-1.0.3.tar.xz :
  CHECKSUM(SHA256) this package     : 874bd7da67c3053febf6d89947a66f61ecd9b7dfd9e8a88f32cb913fe43ebfd1
  CHECKSUM(SHA256) upstream package : 874bd7da67c3053febf6d89947a66f61ecd9b7dfd9e8a88f32cb913fe43ebfd1


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1582983 -m fedora-rawhide-x86_64
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 8 Rex Dieter 2018-06-22 14:52:03 UTC
I'll try to review this soon, thanks for your patience.

Comment 9 Rex Dieter 2018-06-22 21:24:38 UTC
Looking this over I have a couple of questions:

1.  termy-server and termy-qt both come from common source,
https://termysequence.io/releases/termysequence-%{version}.tar.xz

So, why package them seperately?
Typically, you'd build from a single source package and generate multiple subpackages instead.


2.  Why use
-DCMAKE_BUILD_TYPE=None
??  (hint: please document the reasoning in a .spec comment)

Comment 10 Eamon Walsh 2018-06-23 22:41:08 UTC
In response to comment #9:

1. My reasoning for having separate packages is that termy-qt is likely to need updates far more frequently than termy-server. If they are subpackages, every time the Qt application gets a bug fix or new feature, the server (which is intended to be installed in many more places such as containers and headless machines) will also get an update. Unless the Fedora infrastructure supports pushing updates for just one subpackage of a package? I double-checked the Packaging Guidelines and they seem to be silent on this issue. I can combine them into one package if this will help the review (could they be easily split back into separate packages later?)

2. I have added a comment about build type None and updated both spec files at the URL above.

Thanks for reviewing this, if you want me to review a package or two in return just let me know.

Comment 11 Eamon Walsh 2018-06-25 22:17:35 UTC
In response to comment #9:

1. One more reason for the package split: termy-server does not depend on V8 but termy-qt does. V8 does not build on all architectures, requiring an ExclusiveArch tag for termy-qt. ExclusiveArch cannot be applied to a subpackage.

Comment 12 Rex Dieter 2018-07-02 04:03:11 UTC
Re: comment #10

they're both built from the same source tarball, no?  if you really want things built independently, why are they not released separately upstream?

re: comment #11

Subpackages can be conditionalized, that's not a problem.

Comment 13 Eamon Walsh 2018-07-18 00:05:16 UTC
I will need a week or two to make the necessary changes to the packaging.

Comment 14 Eamon Walsh 2018-08-10 20:36:54 UTC
Okay, a new 1.1.0 release has been made upstream. Upstream is now distributing termy-server as a separate tarball.

Spec URL: https://termysequence.io/fedora/termy-server.spec
SRPM URL: https://termysequence.io/fedora/termy-server-1.1.0-1.fc28.src.rpm

Available in COPR:
https://copr.fedorainfracloud.org/coprs/ewalsh/termysequence/

Comment 15 Rex Dieter 2018-08-31 19:55:36 UTC
Thanks for the update, and apologies for my tardiness.  Found some free time today finally.

built/installed ok locally,

$ sudo rpmlint termy-server
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

naming: ok

sources: ok
$ md5sum *.xz
e8fdf6191c01d1eab2d0b968e42161f3  termysequence-server-1.1.0.tar.xz

licensing: ok

scriptlets: ok

1. SHOULD remove:
# Build type "None" disables Release/Debug CFLAGS and LDFLAGS set by CMake.
# Only the CFLAGS and LDFLAGS specified by rpmbuild will be used.
...# Build type "None" disables Release/Debug CFLAGS and LDFLAGS set by CMake.
# Only the CFLAGS and LDFLAGS specified by rpmbuild will be used.
#    -DCMAKE_BUILD_TYPE=None \

    -DCMAKE_BUILD_TYPE=None \

This does not appear to be true.  and if it was, fixing or workaround here is the wrong place to do it (cmake and it's macros should be fixed instead).  Please remove this.


Otherwise, fairly simple and clean.

APPROVED.

I'll sponsor you shortly.

Comment 16 Rex Dieter 2018-08-31 20:02:44 UTC
I'll amend SHOULD item 1:

1. SHOULD use instead
-DCMAKE_BUILD_TYPE=Release

then Release flags actually get used.  In practice, that means mostly that 
-DNDEBUG
gets added to compiler flags.

Comment 17 Igor Raits 2018-09-01 12:21:50 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/termy-server

Comment 18 Eamon Walsh 2018-09-01 20:05:25 UTC
I will change the build type to Release before pushing. Thanks again for the sponsorship and the review. Feel free to give me a review or two to work on in return.

Comment 19 Fedora Update System 2018-09-03 08:40:05 UTC
termy-server-1.1.0-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-c790e20e68

Comment 20 Fedora Update System 2018-09-03 08:51:15 UTC
termy-server-1.1.0-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-5014defddd

Comment 21 Fedora Update System 2018-09-04 09:03:36 UTC
termy-server-1.1.0-2.fc29 has been pushed to the Fedora 29 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-2018-c790e20e68

Comment 22 Fedora Update System 2018-09-07 00:05:15 UTC
termy-server-1.1.0-2.fc28 has been pushed to the Fedora 28 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-2018-5014defddd

Comment 23 Fedora Update System 2018-09-07 00:05:54 UTC
termy-server-1.1.0-2.fc28 has been pushed to the Fedora 28 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-2018-5014defddd

Comment 24 Eamon Walsh 2018-09-11 19:31:23 UTC
Closing, thanks. Please review the GUI package #1583798 when you get a chance.

Comment 25 Fedora Update System 2018-09-17 03:54:33 UTC
termy-server-1.1.0-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Comment 26 Fedora Update System 2018-09-21 05:26:26 UTC
termy-server-1.1.0-2.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.


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