Bug 1942392 - Review Request: rust-vmm-sys-util - Helpers and utilities used by multiple rust-vmm components and VMMs
Summary: Review Request: rust-vmm-sys-util - Helpers and utilities used by multiple ru...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Connor Kuehl
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-03-24 10:14 UTC by Sergio Lopez
Modified: 2021-05-11 14:25 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2021-05-11 14:25:35 UTC
Type: ---
Embargoed:
ckuehl: fedora-review+


Attachments (Terms of Use)

Comment 1 Sergio Lopez 2021-03-24 10:51:16 UTC
This is my first package, so I'm also going to need an sponsor.

Comment 2 Connor Kuehl 2021-03-26 19:05:20 UTC
Hi Sergio!

Overall it looks good. Just a few requested changes:

1. The vmm-sys-util-fix-metadata.diff should be sent upstream, otherwise their crates.io package is needlessly including that CI stuff
1.1. This diff doesn't do what it looks like it should do. Since upstream doesn't exclude this in their manifest, patching it out here is too late, as it's already included in the *.crate source tarball. I suspect you'll want to update this patch to actually remove the rust-vmm-ci/ directory and the /coverage_config_* files.

2. I think the other patch, vmm-sys-util-omit-ioctl-tests.diff, is fine, but if you wanted to, you can automatically patch out the tests by changing '%bcond_without check' to '%bcond_with check' in the .spec file which would mean that this patch could also be removed. This isn't a required change for this review though.

3. The %license field is missing

4. The changelog is slightly different than one of the prescribed formats (https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs). I've been wondering if rust2rpm should stop putting the HH:MM:SS timestamp in the changelog entry. It's on my list to ask the other Rust packagers + upstream rust2rpm.


Please address points #1, #3, and #4, and then this package looks good to me :-)

Thank you,

Connor


-------
rpmlint
-------
rust-vmm-sys-util+default-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+default-devel.noarch: W: no-documentation
rust-vmm-sys-util+serde-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde-devel.noarch: W: no-documentation
rust-vmm-sys-util+serde_derive-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde_derive-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde_derive-devel.noarch: W: no-documentation
rust-vmm-sys-util-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util-devel.noarch: W: hidden-file-or-dir /usr/share/cargo/registry/vmm-sys-util-0.8.0/.cargo-checksum.json
rust-vmm-sys-util+with-serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+with-serde-devel.noarch: W: no-documentation
rust-vmm-sys-util.src: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
6 packages and 0 specfiles checked; 0 errors, 13 warnings.

---


I think the rpmlint output is fine, so no changes required here:

- The link is fine if anyone actually clicks on it
- 'serde' is not a real word, but Rust people know what it is
- hidden-file-or-dir appears in lots of Rust crates, so I think it's fine
- I think the documentation warning is in reference to man-pages or something, but this is just a devel library

Comment 3 Sergio Lopez 2021-03-29 15:29:05 UTC
(In reply to Connor Kuehl from comment #2)
> Hi Sergio!

Hi, Connor. Thanks for the review! 
 
> Overall it looks good. Just a few requested changes:
> 
> 1. The vmm-sys-util-fix-metadata.diff should be sent upstream, otherwise
> their crates.io package is needlessly including that CI stuff

Sure, I intend to do that for vmm-sys-util and, pretty much, every other rust-vmm crate.

> 1.1. This diff doesn't do what it looks like it should do. Since upstream
> doesn't exclude this in their manifest, patching it out here is too late, as
> it's already included in the *.crate source tarball. I suspect you'll want
> to update this patch to actually remove the rust-vmm-ci/ directory and the
> /coverage_config_* files.

This is indicated in the Rust Packaging Guidelines [1] and other packages, such as rust-memmap, include similar patches. I've tested it and doing this prevents those files to be included in the -devel package.

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_excluding_unnecessary_files

> 2. I think the other patch, vmm-sys-util-omit-ioctl-tests.diff, is fine, but
> if you wanted to, you can automatically patch out the tests by changing
> '%bcond_without check' to '%bcond_with check' in the .spec file which would
> mean that this patch could also be removed. This isn't a required change for
> this review though.

But that would disable all tests, wouldn't it?

> 3. The %license field is missing
>
> 4. The changelog is slightly different than one of the prescribed formats
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs).
> I've been wondering if rust2rpm should stop putting the HH:MM:SS timestamp
> in the changelog entry. It's on my list to ask the other Rust packagers +
> upstream rust2rpm.

Ouch. I'll fix both right away.

Comment 4 Connor Kuehl 2021-03-29 16:35:00 UTC
(In reply to Sergio Lopez from comment #3)
> > 1.1. This diff doesn't do what it looks like it should do. Since upstream
> > doesn't exclude this in their manifest, patching it out here is too late, as
> > it's already included in the *.crate source tarball. I suspect you'll want
> > to update this patch to actually remove the rust-vmm-ci/ directory and the
> > /coverage_config_* files.
> 
> This is indicated in the Rust Packaging Guidelines [1] and other packages,
> such as rust-memmap, include similar patches. I've tested it and doing this
> prevents those files to be included in the -devel package.
> 
> [1]
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/
> #_excluding_unnecessary_files

Okay, cool! When I read that document, I read it as something that has to go upstream otherwise it's included in the .crate tarball. Perhaps the rust packaging macros are doing the heavy lifting here. Nice!

> 
> > 2. I think the other patch, vmm-sys-util-omit-ioctl-tests.diff, is fine, but
> > if you wanted to, you can automatically patch out the tests by changing
> > '%bcond_without check' to '%bcond_with check' in the .spec file which would
> > mean that this patch could also be removed. This isn't a required change for
> > this review though.
> 
> But that would disable all tests, wouldn't it?

Right, which I understand may not be desirable, but would remove a patch needed for the downstream package. Up to you. I like tests too :-)

> 
> > 3. The %license field is missing
> >
> > 4. The changelog is slightly different than one of the prescribed formats
> > (https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs).
> > I've been wondering if rust2rpm should stop putting the HH:MM:SS timestamp
> > in the changelog entry. It's on my list to ask the other Rust packagers +
> > upstream rust2rpm.
> 
> Ouch. I'll fix both right away.

Thanks!

Comment 6 Fabiano Fidêncio 2021-03-30 10:24:14 UTC
Sergio, there are a few comments below based on the fedora-review tool.
Please, take a look on the "[!]" and "[?]" parts of the review.

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

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



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

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: "Unknown or generated", "*No copyright* Apache License 2.0",
     "BSD 3-clause "New" or "Revised" License". 43 files have unknown
     license. Detailed output of licensecheck in /home/fidencio/review-
     rust-vmm-sys-util/licensecheck.txt
[!]: License file installed when any subpackage combination is installed.
     Sergio, license is only being installed as part of the rust-vmm-sys-util-devel package.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[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]: 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]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[?]: Final provides and requires are sane (see attachments).
     Sergio, maybe worth using the Requires / Provides pointed out as part of the fedora-review tool?
[?]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rust-
     vmm-sys-util-devel , rust-vmm-sys-util+default-devel , rust-vmm-sys-
     util+serde-devel , rust-vmm-sys-util+serde_derive-devel , rust-vmm-
     sys-util+with-serde-devel
     Segio, it looks good to me as it is, but I'd like a second check from Connor here.
[?]: Package functions as described.
     Sergio, I haven't tested the package, I'd appreciate if Connor could do.
[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.
[-]: 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]: %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]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[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: rust-vmm-sys-util-devel-0.8.0-1.fc35.noarch.rpm
          rust-vmm-sys-util+default-devel-0.8.0-1.fc35.noarch.rpm
          rust-vmm-sys-util+serde-devel-0.8.0-1.fc35.noarch.rpm
          rust-vmm-sys-util+serde_derive-devel-0.8.0-1.fc35.noarch.rpm
          rust-vmm-sys-util+with-serde-devel-0.8.0-1.fc35.noarch.rpm
          rust-vmm-sys-util-0.8.0-1.fc35.src.rpm
rust-vmm-sys-util-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util-devel.noarch: W: hidden-file-or-dir /usr/share/cargo/registry/vmm-sys-util-0.8.0/.cargo-checksum.json
rust-vmm-sys-util+default-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+default-devel.noarch: W: no-documentation
rust-vmm-sys-util+serde-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde-devel.noarch: W: no-documentation
rust-vmm-sys-util+serde_derive-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde_derive-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde_derive-devel.noarch: W: no-documentation
rust-vmm-sys-util+with-serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+with-serde-devel.noarch: W: no-documentation
rust-vmm-sys-util.src: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
6 packages and 0 specfiles checked; 0 errors, 13 warnings.




Rpmlint (installed packages)
----------------------------
rust-vmm-sys-util+serde-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde-devel.noarch: W: no-documentation
rust-vmm-sys-util+with-serde-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+with-serde-devel.noarch: W: no-documentation
rust-vmm-sys-util+default-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+default-devel.noarch: W: no-documentation
rust-vmm-sys-util-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util-devel.noarch: W: hidden-file-or-dir /usr/share/cargo/registry/vmm-sys-util-0.8.0/.cargo-checksum.json
rust-vmm-sys-util+serde_derive-devel.noarch: W: spelling-error %description -l en_US serde -> sere, serge, serve
rust-vmm-sys-util+serde_derive-devel.noarch: W: invalid-url URL: https://crates.io/crates/vmm-sys-util HTTP Error 404: Not Found
rust-vmm-sys-util+serde_derive-devel.noarch: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 12 warnings.



Source checksums
----------------
https://crates.io/api/v1/crates/vmm-sys-util/0.8.0/download#/vmm-sys-util-0.8.0.crate :
  CHECKSUM(SHA256) this package     : 01cf11afbc4ebc0d5c7a7748a77d19e2042677fc15faa2f4ccccb27c18a60605
  CHECKSUM(SHA256) upstream package : 01cf11afbc4ebc0d5c7a7748a77d19e2042677fc15faa2f4ccccb27c18a60605


Requires
--------
rust-vmm-sys-util-devel (rpmlib, GLIBC filtered):
    (crate(bitflags/default) >= 1.0.0 with crate(bitflags/default) < 2.0.0~)
    cargo
    crate(libc/default)

rust-vmm-sys-util+default-devel (rpmlib, GLIBC filtered):
    cargo
    crate(vmm-sys-util)

rust-vmm-sys-util+serde-devel (rpmlib, GLIBC filtered):
    cargo
    crate(serde/default)
    crate(vmm-sys-util)

rust-vmm-sys-util+serde_derive-devel (rpmlib, GLIBC filtered):
    cargo
    crate(serde_derive/default)
    crate(vmm-sys-util)

rust-vmm-sys-util+with-serde-devel (rpmlib, GLIBC filtered):
    cargo
    crate(serde/default)
    crate(serde_derive/default)
    crate(vmm-sys-util)



Provides
--------
rust-vmm-sys-util-devel:
    crate(vmm-sys-util)
    rust-vmm-sys-util-devel

rust-vmm-sys-util+default-devel:
    crate(vmm-sys-util/default)
    rust-vmm-sys-util+default-devel

rust-vmm-sys-util+serde-devel:
    crate(vmm-sys-util/serde)
    rust-vmm-sys-util+serde-devel

rust-vmm-sys-util+serde_derive-devel:
    crate(vmm-sys-util/serde_derive)
    rust-vmm-sys-util+serde_derive-devel

rust-vmm-sys-util+with-serde-devel:
    crate(vmm-sys-util/with-serde)
    rust-vmm-sys-util+with-serde-devel



Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10
Command line :/usr/bin/fedora-review --url https://bugzilla.redhat.com/show_bug.cgi?id=1942392#c5
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic
Disabled plugins: Perl, C/C++, Ocaml, fonts, R, Haskell, Java, SugarActivity, PHP, Python
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 7 Connor Kuehl 2021-03-30 21:02:56 UTC
(In reply to Fabiano Fidêncio from comment #6)
> [..]
> [!]: License file installed when any subpackage combination is installed.
>      Sergio, license is only being installed as part of the
> rust-vmm-sys-util-devel package.

I think the root `rust-vmm-sys-util-devel` is required by the other subfeature versions, so running `dnf install rust-vmm-sys-util+serde-devel` should result in rust-vmm-sys-util-devel being installed with the license. Is that sufficient?

> [..]
> [?]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rust-
>      vmm-sys-util-devel , rust-vmm-sys-util+default-devel , rust-vmm-sys-
>      util+serde-devel , rust-vmm-sys-util+serde_derive-devel , rust-vmm-
>      sys-util+with-serde-devel
>      Segio, it looks good to me as it is, but I'd like a second check from
> Connor here.

Fabiano, I believe you're correct. This looks good to me.

> [..]
> [?]: Package functions as described.
>      Sergio, I haven't tested the package, I'd appreciate if Connor could do.

I have a package that only transiently depends on vmm-sys-util for unit tests, but a lot of the other required packages aren't packaged for Fedora yet since they depend on this one. So I think it would be nontrivial for me to position my other package to test this library. The unit tests that run for this package are all passing, which is good enough for me.

Comment 8 Sergio Lopez 2021-03-31 11:43:11 UTC
(In reply to Connor Kuehl from comment #7)
> (In reply to Fabiano Fidêncio from comment #6)
> > [..]
> > [!]: License file installed when any subpackage combination is installed.
> >      Sergio, license is only being installed as part of the
> > rust-vmm-sys-util-devel package.
> 
> I think the root `rust-vmm-sys-util-devel` is required by the other
> subfeature versions, so running `dnf install rust-vmm-sys-util+serde-devel`
> should result in rust-vmm-sys-util-devel being installed with the license.
> Is that sufficient?

I've just checked and all subpackages depend on the main one via "crate(vmm-sys-util)":

[slp@fedora noarch]$ rpm -qpR rust-vmm-sys-util+default-devel-0.8.0-1.fc34.noarch.rpm
cargo
crate(vmm-sys-util) = 0.8.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
[slp@fedora noarch]$ rpm -qpR rust-vmm-sys-util+serde-devel-0.8.0-1.fc34.noarch.rpm 
cargo
crate(serde/default) >= 1.0.27
crate(vmm-sys-util) = 0.8.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
[slp@fedora noarch]$ rpm -qpR rust-vmm-sys-util+serde_derive-devel-0.8.0-1.fc34.noarch.rpm 
cargo
crate(serde_derive/default) >= 1.0.27
crate(vmm-sys-util) = 0.8.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
[slp@fedora noarch]$ rpm -qpR rust-vmm-sys-util+with-serde-devel-0.8.0-1.fc34.noarch.rpm 
cargo
crate(serde/default) >= 1.0.27
crate(serde_derive/default) >= 1.0.27
crate(vmm-sys-util) = 0.8.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1

This also seems to be what other packaged rust-crates do, such as rust-memmap.

> > [..]
> > [?]: Package functions as described.
> >      Sergio, I haven't tested the package, I'd appreciate if Connor could do.
> 
> I have a package that only transiently depends on vmm-sys-util for unit
> tests, but a lot of the other required packages aren't packaged for Fedora
> yet since they depend on this one. So I think it would be nontrivial for me
> to position my other package to test this library. The unit tests that run
> for this package are all passing, which is good enough for me.

FWIW, I have a second package ready for submission (vm-memory) that depends on vmm-sys-util, and passes its own tests fine. Given that we're just shipping some sources in the package, I think it should be fine.

Thank you both!
Sergio.

Comment 9 Fabiano Fidêncio 2021-03-31 12:23:11 UTC
(In reply to Sergio Lopez from comment #8)
> (In reply to Connor Kuehl from comment #7)
> > (In reply to Fabiano Fidêncio from comment #6)
> > > [..]
> > > [!]: License file installed when any subpackage combination is installed.
> > >      Sergio, license is only being installed as part of the
> > > rust-vmm-sys-util-devel package.
> > 
> > I think the root `rust-vmm-sys-util-devel` is required by the other
> > subfeature versions, so running `dnf install rust-vmm-sys-util+serde-devel`
> > should result in rust-vmm-sys-util-devel being installed with the license.
> > Is that sufficient?
> 
> I've just checked and all subpackages depend on the main one via
> "crate(vmm-sys-util)":
> 
> [slp@fedora noarch]$ rpm -qpR
> rust-vmm-sys-util+default-devel-0.8.0-1.fc34.noarch.rpm
> cargo
> crate(vmm-sys-util) = 0.8.0
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsZstd) <= 5.4.18-1
> [slp@fedora noarch]$ rpm -qpR
> rust-vmm-sys-util+serde-devel-0.8.0-1.fc34.noarch.rpm 
> cargo
> crate(serde/default) >= 1.0.27
> crate(vmm-sys-util) = 0.8.0
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsZstd) <= 5.4.18-1
> [slp@fedora noarch]$ rpm -qpR
> rust-vmm-sys-util+serde_derive-devel-0.8.0-1.fc34.noarch.rpm 
> cargo
> crate(serde_derive/default) >= 1.0.27
> crate(vmm-sys-util) = 0.8.0
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsZstd) <= 5.4.18-1
> [slp@fedora noarch]$ rpm -qpR
> rust-vmm-sys-util+with-serde-devel-0.8.0-1.fc34.noarch.rpm 
> cargo
> crate(serde/default) >= 1.0.27
> crate(serde_derive/default) >= 1.0.27
> crate(vmm-sys-util) = 0.8.0
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(FileDigests) <= 4.6.0-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(PayloadIsZstd) <= 5.4.18-1
> 
> This also seems to be what other packaged rust-crates do, such as
> rust-memmap.
> 
> > > [..]
> > > [?]: Package functions as described.
> > >      Sergio, I haven't tested the package, I'd appreciate if Connor could do.
> > 
> > I have a package that only transiently depends on vmm-sys-util for unit
> > tests, but a lot of the other required packages aren't packaged for Fedora
> > yet since they depend on this one. So I think it would be nontrivial for me
> > to position my other package to test this library. The unit tests that run
> > for this package are all passing, which is good enough for me.
> 
> FWIW, I have a second package ready for submission (vm-memory) that depends
> on vmm-sys-util, and passes its own tests fine. Given that we're just
> shipping some sources in the package, I think it should be fine.
> 
> Thank you both!
> Sergio.

Perfect! Connor, please, could you set the "fedora-review" flag to "+"?

Comment 10 Connor Kuehl 2021-03-31 13:34:04 UTC
Thanks both of you! Sergio, you should be able to request a repo for this now. (Sorry if this message goes through multiple times, Bugzilla is giving me an error when I click submit).

Comment 11 Cole Robinson 2021-03-31 15:28:06 UTC
I sponsored Sergio into the packagers group now... I think... the system changed recently but it shows he's a member here now: https://accounts.fedoraproject.org/user/slp/

Comment 12 Tomas Hrcka 2021-04-27 14:09:35 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-vmm-sys-util


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