Bug 1867290 - Review Request: editline - A small compatible replacement for readline
Summary: Review Request: editline - A small compatible replacement for readline
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Andy Mender
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-08-08 06:16 UTC by Jens Petersen
Modified: 2020-11-04 04:06 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-10-28 01:22:22 UTC
Type: ---
Embargoed:
andymenderunix: fedora-review+


Attachments (Terms of Use)

Description Jens Petersen 2020-08-08 06:16:29 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/editline/editline.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/editline/editline-1.17.1-1.fc33.src.rpm

Description:
This is a line editing library for UNIX. It can be linked into almost
any program to provide command line editing and history. It is call
compatible with the FSF readline library, but is a fraction of the
size (and offers fewer features).


Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=48908669

Comment 1 Andy Mender 2020-08-08 19:12:56 UTC
> License:        BSD

I checked the main website and it mentions that the original sources were under a "C News-like" license. fedora-review mentions a modified GPLv2 license (obviously not true). Running licensecheck by hand shows UNKNOWN all over the board (including the license file):
editline-1.17.1/.travis.yml: *No copyright* GENERATED FILE
editline-1.17.1/ChangeLog.md: *No copyright* GENERATED FILE
editline-1.17.1/INSTALL.md: *No copyright* UNKNOWN
editline-1.17.1/LICENSE: UNKNOWN
editline-1.17.1/Make.os9: *No copyright* UNKNOWN
editline-1.17.1/Makefile.am: *No copyright* UNKNOWN
editline-1.17.1/README.md: *No copyright* UNKNOWN
[...]

The text of the license looks like a rewrite of the BSD license, so I would put a comment above the "License" field that it's a "BSD-like license called C-News" or something similar.

> Requires:       %{name} = %{version}-%{release}

If possible, I would use the following the -devel subpackage instead:
Requires: %{name}%{?_isa} = %{version}-%{release}

> %files
> %license LICENSE
> %{_libdir}/libeditline.so.1
> %{_libdir}/libeditline.so.1.0.2

Would it make sense to add the doc to the main package as well?

> %files devel
> %doc ChangeLog.md README.md
> %{_includedir}/editline.h
> %{_libdir}/libeditline.so
> %{_libdir}/pkgconfig/libeditline.pc
> # conflicts with libedit-devel
> #%%{_mandir}/man3/editline.3.gz

Same here for the license file? Worth adding?

> %changelog
> * Thu Aug 06 2020 Jens Petersen <petersen>
> - initial packaging

Missing package version and dist tag at the end of the changelog entry.

The full review matrix:

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]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
     Review: Koji build provided by submitter.
[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: "Unknown or generated", "Expat License", "FSF Unlimited License
     (with Retention) GNU General Public License (v2)", "FSF Unlimited
     License (with Retention)". 36 files have unknown license. Detailed
     output of licensecheck in
     /home/amender/rpmbuild/SPECS/editline/editline/licensecheck.txt
     Review: covered in earlier comments. It's not GPLv2, of course!
[x]: License file installed when any subpackage combination is installed.
     Review: Yes, since the -devel package requires the main package.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[!]: Changelog in prescribed format.
     Review: mentioned in an earlier comment.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[?]: 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.
[-]: Package contains systemd file(s) if in need.
[?]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 30720 bytes in 2 files.
[x]: Package complies to the Packaging Guidelines
     Review: see comment about the changelog entry.
[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 must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[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 must not depend on deprecated() packages.
[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]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: 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).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     editline-devel
     Review: see earlier comment.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: 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.
     Review: Koji build 
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[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]: The placement of pkgconfig(.pc) files are correct.
[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: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.


Rpmlint
-------
Checking: editline-1.17.1-1.fc33.x86_64.rpm
          editline-devel-1.17.1-1.fc33.x86_64.rpm
          editline-debuginfo-1.17.1-1.fc33.x86_64.rpm
          editline-debugsource-1.17.1-1.fc33.x86_64.rpm
          editline-1.17.1-1.fc33.src.rpm
editline.x86_64: W: spelling-error Summary(en_US) readline -> breadline, deadline, headline
editline.x86_64: W: spelling-error %description -l en_US readline -> breadline, deadline, headline
editline.x86_64: W: no-version-in-last-changelog
editline.x86_64: W: no-documentation
editline-devel.x86_64: W: no-version-in-last-changelog
editline-debuginfo.x86_64: W: no-version-in-last-changelog
editline-debugsource.x86_64: W: no-version-in-last-changelog
editline.src: W: spelling-error Summary(en_US) readline -> breadline, deadline, headline
editline.src: W: spelling-error %description -l en_US readline -> breadline, deadline, headline
editline.src: W: no-version-in-last-changelog
5 packages and 0 specfiles checked; 0 errors, 10 warnings.




Rpmlint (debuginfo)
-------------------
Checking: editline-debuginfo-1.17.1-1.fc33.x86_64.rpm
editline-debuginfo.x86_64: W: no-version-in-last-changelog
1 packages and 0 specfiles checked; 0 errors, 1 warnings.





Rpmlint (installed packages)
----------------------------
(none): E: no installed packages by name editline
(none): E: no installed packages by name editline-debuginfo
(none): E: no installed packages by name editline-debugsource
(none): E: no installed packages by name editline-devel
0 packages and 0 specfiles checked; 0 errors, 0 warnings.



Source checksums
----------------
https://github.com/troglobit/editline/releases/download/1.17.1/editline-1.17.1.tar.xz :
  CHECKSUM(SHA256) this package     : df223b3333a545fddbc67b49ded3d242c66fadf7a04beb3ada20957fcd1ffc0e
  CHECKSUM(SHA256) upstream package : df223b3333a545fddbc67b49ded3d242c66fadf7a04beb3ada20957fcd1ffc0e


Requires
--------
editline (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    rtld(GNU_HASH)

editline-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    editline
    libeditline.so.1()(64bit)

editline-debuginfo (rpmlib, GLIBC filtered):

editline-debugsource (rpmlib, GLIBC filtered):



Provides
--------
editline:
    editline
    editline(x86-64)
    libeditline.so.1()(64bit)

editline-devel:
    editline-devel
    editline-devel(x86-64)
    pkgconfig(libeditline)

editline-debuginfo:
    debuginfo(build-id)
    editline-debuginfo
    editline-debuginfo(x86-64)

editline-debugsource:
    editline-debugsource
    editline-debugsource(x86-64)

Comment 2 Jens Petersen 2020-08-13 12:42:58 UTC
Thanks, Andy, for picking up this review.
Yeah I was worrying a bit about the license too, since it is unusual.
PLD marked it BSD so I went with that in the first instance.

It is indeed the same license as used by the once famous c-news (usenet newserver) software.

The license is also listed here: https://www.openhub.net/licenses/cnews

I also don't see any serious problem with it,
but probably it is most correct that I post it to
the Fedora Legal list to get their awareness of it.

It might need a separate license tag, I dunno,
since it does seem differ enough from BSD texts.

Comment 3 Andy Mender 2020-08-13 19:53:48 UTC
> I also don't see any serious problem with it,
> but probably it is most correct that I post it to
> the Fedora Legal list to get their awareness of it.
> 
> It might need a separate license tag, I dunno,
> since it does seem differ enough from BSD texts.

I agree contacting Fedora Legal would be the right thing to do. The critical way the C-News license differs from the BSD license is attribution - the BSD license prohibits it. It might indeed require a new tag or Legal might be able to suggest a more compatible tag than "BSD".

Comment 4 Andy Mender 2020-10-03 14:51:24 UTC
Any further news on this review request?

Comment 5 Jens Petersen 2020-10-17 12:27:50 UTC
Thanks, Andy, sorry for the long pause - the license was identified and cleared by Fedora Legal in August as:

https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License

https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/6P6LWUEGQYWPOVM5MA5D3VZLKIEWZURJ/#6P6LWUEGQYWPOVM5MA5D3VZLKIEWZURJ

though I got a couple of discouraging comments along the lines of "Why another libedit"...
which while I tend to agree with, I still think this package is useful for people trying to build nix [1].
Apparently nix can be configured (via envvars) to build with readline, but with reduced functionality
(this was added because the version of editline in Debian/Ubuntu is very old based on the original one).
I guess it is a question for nix upstream why they chose this lesser known library for its repl:
well there is some upstream discussion on it, see for example https://github.com/NixOS/nix/issues/1356

[1] particularly since it is unlikely we can ever ship nix properly in Fedora,
unless we do what Debian does and ship the binary without setting up the system /nix directories.

Comment 6 Jens Petersen 2020-10-17 13:42:18 UTC
(In reply to Andy Mender from comment #1)
> > Requires:       %{name} = %{version}-%{release}
> 
> If possible, I would use the following the -devel subpackage instead:
> Requires: %{name}%{?_isa} = %{version}-%{release}

Yes

> > %files
> > %license LICENSE

> Would it make sense to add the doc to the main package as well?

My usual thinking on this is that most end-user consumers would not be interested.
So for a library I usually only put them in the devel subpackage.

> > %files devel
> > %doc ChangeLog.md README.md

> Same here for the license file? Worth adding?

The devel package requires the base package so it should be superfluous.

> > %changelog
> > * Thu Aug 06 2020 Jens Petersen <petersen>
> > - initial packaging
> 
> Missing package version and dist tag at the end of the changelog entry.

Thanks, fixing

> [?]: Useful -debuginfo package or justification otherwise.

(rpmbuild automatically generates the debuginfo subpackages.
 See eg https://koji.fedoraproject.org/koji/taskinfo?taskID=48908672)

Comment 7 Jens Petersen 2020-10-17 13:53:31 UTC
Spec URL: https://petersen.fedorapeople.org/reviews/editline/editline.spec
SRPM URL: https://petersen.fedorapeople.org/reviews/editline/editline-1.17.1-2.fc33.src.rpm

- correct license is revised HSRL (#1867290)
- use isa for devel base requires (#1867290)

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=53639315

Comment 8 Andy Mender 2020-10-17 21:07:29 UTC
> Thanks, Andy, sorry for the long pause - the license was identified and cleared by Fedora Legal in August as:
> 
> https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License
> 
> https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/6P6LWUEGQYWPOVM5MA5D3VZLKIEWZURJ/#6P6LWUEGQYWPOVM5MA5D3VZLKIEWZURJ

I had a look at the links, compared the license texts and indeed it's 1:1 the Henry Spencer license. I'm glad we have a license tag for this, but it's a shame the MIT or BSD license was not used instead.

> [1] particularly since it is unlikely we can ever ship nix properly in Fedora,
> unless we do what Debian does and ship the binary without setting up the system /nix directories.

Yes, I don't think this would work and/or be useful. "editline" definitely will be, though!

The rest looks good now. Package approved!

Comment 9 Jens Petersen 2020-10-19 09:40:54 UTC
Thank you for the review

https://pagure.io/releng/fedora-scm-requests/issue/29847

Comment 10 Gwyn Ciesla 2020-10-19 13:36:03 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/editline

Comment 11 Fedora Update System 2020-10-20 15:58:14 UTC
FEDORA-2020-786ec740e4 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-786ec740e4

Comment 12 Fedora Update System 2020-10-20 16:23:30 UTC
FEDORA-2020-bce6bf5d10 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-bce6bf5d10

Comment 13 Fedora Update System 2020-10-20 17:14:20 UTC
FEDORA-EPEL-2020-c508531951 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-c508531951

Comment 14 Fedora Update System 2020-10-20 17:47:59 UTC
FEDORA-EPEL-2020-10f5ee1341 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-10f5ee1341

Comment 15 Fedora Update System 2020-10-20 19:01:00 UTC
FEDORA-2020-bce6bf5d10 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-bce6bf5d10 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-bce6bf5d10

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2020-10-20 19:33:39 UTC
FEDORA-EPEL-2020-10f5ee1341 has been pushed to the Fedora EPEL 7 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-10f5ee1341

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2020-10-20 19:47:08 UTC
FEDORA-EPEL-2020-c508531951 has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-c508531951

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 18 Fedora Update System 2020-10-21 21:32:04 UTC
FEDORA-2020-786ec740e4 has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-786ec740e4 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-786ec740e4

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2020-10-28 01:22:22 UTC
FEDORA-2020-bce6bf5d10 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 20 Fedora Update System 2020-10-29 01:05:24 UTC
FEDORA-2020-786ec740e4 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 21 Fedora Update System 2020-11-04 00:31:06 UTC
FEDORA-EPEL-2020-10f5ee1341 has been pushed to the Fedora EPEL 7 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Fedora Update System 2020-11-04 04:06:40 UTC
FEDORA-EPEL-2020-c508531951 has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, 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.