Bug 1830310 - Review Request: rust-pipe - Synchronous Read/Write memory pipe
Summary: Review Request: rust-pipe - Synchronous Read/Write memory pipe
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Dusty Mabe
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-05-01 15:04 UTC by Robert Fairley
Modified: 2020-05-14 15:30 UTC (History)
4 users (show)

Fixed In Version: rust-pipe-0.2.0-1.fc33
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-05-14 15:30:55 UTC
Type: ---
Embargoed:
dustymabe: fedora-review+


Attachments (Terms of Use)

Description Robert Fairley 2020-05-01 15:04:32 UTC
Spec URL: https://rfairley.fedorapeople.org/package-review/rust-pipe.spec
SRPM URL: https://rfairley.fedorapeople.org/package-review/rust-pipe-0.2.0-1.fc33.src.rpm
Description: Synchronous Read/Write memory pipe.

Patch0 file referenced in specfile: https://rfairley.fedorapeople.org/package-review/pipe-fix-metadata.diff

Fedora Account System Username: rfairley

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

Comment 1 Robert Fairley 2020-05-01 15:07:37 UTC
Needed for an update of `rust-coreos-installer` to 0.2.0: https://bugzilla.redhat.com/show_bug.cgi?id=1830171

Comment 2 Robert Fairley 2020-05-01 15:11:25 UTC
Planning to upstream the metadata patches: https://github.com/arcnmx/pipe-rs/pull/7

Comment 3 Dusty Mabe 2020-05-01 20:09:31 UTC
> Package Review
> ==============

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


> Issues:
> =======
> - Package installs properly.
>   Note: Installation errors (see attachment)
>   See: https://docs.fedoraproject.org/en-US/packaging-guidelines/

Can't install:

Error: 
 Problem 1: conflicting requests
  - nothing provides (crate(readwrite/default) >= 0.1.1 with crate(readwrite/default) < 0.2.0) needed by rust-pipe+bidirectional-devel-0.2.0-1.fc33.noarch
 Problem 2: conflicting requests
  - nothing provides (crate(readwrite/default) >= 0.1.1 with crate(readwrite/default) < 0.2.0) needed by rust-pipe+readwrite-devel-0.2.0-1.fc33.noarch

> - 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.
>   Note: License file COPYING is not marked as %license
>   See: https://docs.fedoraproject.org/en-US/packaging-
>   guidelines/LicensingGuidelines/#_license_text

Let's add a `%license` pointing at the  COPYING file.


> ===== MUST items =====

> Generic:
> [ ]: Package is licensed with an open-source compatible license and meets
>      other legal requirements as defined in the legal section of Packaging
>      Guidelines.

pass: MIT licensed

> [ ]: 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". 7 files have unknown
>      license. Detailed output of licensecheck in
>      /home/vagrant/1830310-rust-pipe/licensecheck.txt

pass: MIT licensed - please add `%license` for COPYING, though

> [ ]: License file installed when any subpackage combination is installed.

pass: all packages depend on the main package where the license file will be
provided.

> [ ]: %build honors applicable compiler flags or justifies otherwise.
> [ ]: Package contains no bundled libraries without FPC exception.
> [ ]: Changelog in prescribed format.
> [ ]: 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
> [ ]: Package uses nothing in %doc for runtime.
> [ ]: Package consistently uses macros (instead of hard-coded directory
>      names).
> [ ]: Package is named according to the Package Naming Guidelines.
> [ ]: Package does not generate any conflict.
> [ ]: Package obeys FHS, except libexecdir and /usr/target.
> [ ]: If the package is a rename of another package, proper Obsoletes and
>      Provides are present.
> [ ]: Requires correct, justified where necessary.
> [ ]: Spec file is legible and written in American English.
> [ ]: Package contains systemd file(s) if in need.
> [ ]: 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 10240 bytes in 1 files.
> [ ]: Package complies to the Packaging Guidelines

[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.
[x]: 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.
[-]: Package contains systemd file(s) if in need.
[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 10240 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines


> [x]: Package successfully compiles and builds into binary rpms on at least
>      one supported primary architecture.
> [x]: Rpmlint is run on all rpms the build produces.
>      Note: There are rpmlint messages (see attachment).
> [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

All the above look good!

> ===== 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.

pass: COPYING file exists

> [ ]: Final provides and requires are sane (see attachments).
> [ ]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rust-
>      pipe-devel , rust-pipe+default-devel , rust-pipe+bidirectional-devel ,
>      rust-pipe+readwrite-devel , rust-pipe+unstable-doc-cfg-devel
> [ ]: Package functions as described.
> [ ]: Latest version is packaged.
> [ ]: Package does not include license text files separate from upstream.
> [ ]: Patches link to upstream bugs/comments/lists or are otherwise
>      justified.
> [ ]: 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.
> [ ]: %check is present and all tests pass.
> [ ]: Packages should try to preserve timestamps of original installed
>      files.

pass: all of the above look good or are N/A


> [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]: Package should compile and build into binary rpms on all supported
>      architectures.
> [x]: Spec use %global instead of %define unless justified.

> ===== EXTRA items =====

> Generic:
> [!]: Rpmlint is run on all installed packages.
>      Note: Mock build failed
>      See: https://docs.fedoraproject.org/en-US/packaging-
>      guidelines/#_use_rpmlint
> [x]: Spec file according to URL is the same as in SRPM.


> Rpmlint
> -------
> Checking: rust-pipe-devel-0.2.0-1.fc33.noarch.rpm
> 	  rust-pipe+default-devel-0.2.0-1.fc33.noarch.rpm
> 	  rust-pipe+bidirectional-devel-0.2.0-1.fc33.noarch.rpm
> 	  rust-pipe+readwrite-devel-0.2.0-1.fc33.noarch.rpm
> 	  rust-pipe+unstable-doc-cfg-devel-0.2.0-1.fc33.noarch.rpm
> 	  rust-pipe-0.2.0-1.fc33.src.rpm
> rust-pipe-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> rust-pipe-devel.noarch: W: hidden-file-or-dir /usr/share/cargo/registry/pipe-0.2.0/.cargo-checksum.json
> rust-pipe+default-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> rust-pipe+default-devel.noarch: W: no-documentation
> rust-pipe+bidirectional-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> rust-pipe+bidirectional-devel.noarch: W: no-documentation
> rust-pipe+readwrite-devel.noarch: W: spelling-error %description -l en_US readwrite -> read write, read-write, rewrite
> rust-pipe+readwrite-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> rust-pipe+readwrite-devel.noarch: W: no-documentation
> rust-pipe+unstable-doc-cfg-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> rust-pipe+unstable-doc-cfg-devel.noarch: W: no-documentation
> rust-pipe.src: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> 6 packages and 0 specfiles checked; 0 errors, 12 warnings.

I'm not sure why it's saying https://crates.io/crates/pipe is an invalid URL because it's working for me.
I would ingnore the no-documentation warning.
I wonder if we can do something about the hidden-file-or-dir warning.

Comment 4 Robert Fairley 2020-05-04 17:15:50 UTC
(In reply to Dusty Mabe from comment #3)
> > Package Review
> > ==============
> 
> > Legend:
> > [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> > [ ] = Manual review needed
> 
> 
> > Issues:
> > =======
> > - Package installs properly.
> >   Note: Installation errors (see attachment)
> >   See: https://docs.fedoraproject.org/en-US/packaging-guidelines/
> 
> Can't install:
> 
> Error: 
>  Problem 1: conflicting requests
>   - nothing provides (crate(readwrite/default) >= 0.1.1 with
> crate(readwrite/default) < 0.2.0) needed by
> rust-pipe+bidirectional-devel-0.2.0-1.fc33.noarch
>  Problem 2: conflicting requests
>   - nothing provides (crate(readwrite/default) >= 0.1.1 with
> crate(readwrite/default) < 0.2.0) needed by
> rust-pipe+readwrite-devel-0.2.0-1.fc33.noarch
> 

Now opened: https://bugzilla.redhat.com/show_bug.cgi?id=1831106
With `rust-readwrite` installed, these two features requiring `readwrite` now install successfully.

> > - 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.
> >   Note: License file COPYING is not marked as %license
> >   See: https://docs.fedoraproject.org/en-US/packaging-
> >   guidelines/LicensingGuidelines/#_license_text
> 
> Let's add a `%license` pointing at the  COPYING file.
> 

+1 - `%license COPYING` is now added to the specfile.

> > Rpmlint
> > -------
> > Checking: rust-pipe-devel-0.2.0-1.fc33.noarch.rpm
> > 	  rust-pipe+default-devel-0.2.0-1.fc33.noarch.rpm
> > 	  rust-pipe+bidirectional-devel-0.2.0-1.fc33.noarch.rpm
> > 	  rust-pipe+readwrite-devel-0.2.0-1.fc33.noarch.rpm
> > 	  rust-pipe+unstable-doc-cfg-devel-0.2.0-1.fc33.noarch.rpm
> > 	  rust-pipe-0.2.0-1.fc33.src.rpm
> > rust-pipe-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > rust-pipe-devel.noarch: W: hidden-file-or-dir /usr/share/cargo/registry/pipe-0.2.0/.cargo-checksum.json
> > rust-pipe+default-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > rust-pipe+default-devel.noarch: W: no-documentation
> > rust-pipe+bidirectional-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > rust-pipe+bidirectional-devel.noarch: W: no-documentation
> > rust-pipe+readwrite-devel.noarch: W: spelling-error %description -l en_US readwrite -> read write, read-write, rewrite
> > rust-pipe+readwrite-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > rust-pipe+readwrite-devel.noarch: W: no-documentation
> > rust-pipe+unstable-doc-cfg-devel.noarch: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > rust-pipe+unstable-doc-cfg-devel.noarch: W: no-documentation
> > rust-pipe.src: W: invalid-url URL: https://crates.io/crates/pipe HTTP Error 404: Not Found
> > 6 packages and 0 specfiles checked; 0 errors, 12 warnings.
> 
> I'm not sure why it's saying https://crates.io/crates/pipe is an invalid URL
> because it's working for me.
> I would ingnore the no-documentation warning.
> I wonder if we can do something about the hidden-file-or-dir warning.

The hidden-file-or-dir warning seems to come up when using the default macros - I think this could be addressed in
https://src.fedoraproject.org/rpms/rust-srpm-macros (maybe to avoid packaging the file altogether as it seems to
apply only to vendored rust deps, or exclude it from the hidden-file-or-dir check). Will take a look into this.

Comment 5 Dusty Mabe 2020-05-04 21:20:58 UTC
Along with rust-readwrite everything installs now.

Package LGTM.

Comment 6 Robert Fairley 2020-05-04 21:32:06 UTC
SCM repo requested: https://pagure.io/releng/fedora-scm-requests/issue/24757

Comment 7 Gwyn Ciesla 2020-05-04 22:02:31 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-pipe


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