Bug 2281999 - Review Request: rust-two-face - Extra syntax and theme definitions for syntect
Summary: Review Request: rust-two-face - Extra syntax and theme definitions for syntect
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL: https://crates.io/crates/two-face
Whiteboard:
Depends On:
Blocks: 2265325
TreeView+ depends on / blocked
 
Reported: 2024-05-20 18:30 UTC by Fabio Valentini
Modified: 2024-06-03 12:09 UTC (History)
2 users (show)

Fixed In Version: rust-two-face-0.4.0-1.fc41
Clone Of:
Environment:
Last Closed: 2024-06-03 12:09:24 UTC
Type: ---
Embargoed:
code: fedora-review+


Attachments (Terms of Use)

Description Fabio Valentini 2024-05-20 18:30:36 UTC
Spec URL: https://decathorpe.fedorapeople.org/rust-two-face.spec
SRPM URL: https://decathorpe.fedorapeople.org/rust-two-face-0.4.0-1.fc40.src.rpm

Description:
Extra syntax and theme definitions for syntect.

Fedora Account System Username: decathorpe

Comment 1 Fabio Valentini 2024-05-20 18:30:39 UTC
This package built on koji:  https://koji.fedoraproject.org/koji/taskinfo?taskID=117956801

Comment 2 Fedora Review Service 2024-05-20 21:28:06 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7467142
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2281999-rust-two-face/fedora-rawhide-x86_64/07467142-rust-two-face/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 3 Fabio Valentini 2024-05-21 10:05:27 UTC
Some background info that might help with the review:

The bundled contents (Sublime Text grammars and themes) are only present in a compressed binary format. They are generated from plain-text files upstream, but those plain-text files are not included in the published crates. However, the compressed binary format still includes license texts and attributions for all bundled grammars and themes, which are accessible programmatically (similar to the output of "bat --acknowledgements").

The code of this crate and the included contents are derived from a snapshot of "bat" (https://github.com/sharkdp/bat), which contains the same data. This seems to have been missed when "bat" was packaged for Fedora. As soon as this package is in an acceptable state for inclusion in Fedora, I will apply the same "bundled()" Provides and license tag adaptations to the "bat" package (and the packages for the "syntect" crate, which also bundles similar data).

Comment 4 Ben Beasley 2024-05-22 11:46:19 UTC
(In reply to Fabio Valentini from comment #3)
> Some background info that might help with the review:
> 
> The bundled contents (Sublime Text grammars and themes) are only present in
> a compressed binary format. They are generated from plain-text files
> upstream, but those plain-text files are not included in the published
> crates. However, the compressed binary format still includes license texts
> and attributions for all bundled grammars and themes, which are accessible
> programmatically (similar to the output of "bat --acknowledgements").

If we consider these to include any “code,” we would be bound to include the original source files in the source RPM even if we are not actually rebuilding the generated code in the RPM build.

https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#pregenerated-code

If these could all be considered “content,” then we don’t necessarily have such a requirement, unless covered by a specific guideline like https://docs.fedoraproject.org/en-US/packaging-guidelines/Web_Assets/#_css.

A quick overview of https://github.com/sharkdp/bat/tree/master/assets suggests that themes are .tmTheme configuration files in an XML format, and syntaxes are .tmPreferences files in an XML format, .sublime-syntax files in a YAML format, and sometimes some cruft in JSON formats.

I’m leaning toward agreeing that these bundled assets should be treated as content, and the approach here looks acceptable. It still wouldn’t hurt to include an ancillary Source archive with the “original sources” if practical, but in this case it looks like that would be fairly burdensome, as everything is tied together with git submodules upstream.

Comment 5 Fabio Valentini 2024-05-23 15:01:06 UTC
(In reply to Ben Beasley from comment #4)
> I’m leaning toward agreeing that these bundled assets should be treated as
> content, and the approach here looks acceptable. It still wouldn’t hurt to
> include an ancillary Source archive with the “original sources” if
> practical, but in this case it looks like that would be fairly burdensome,
> as everything is tied together with git submodules upstream.

That pretty much matches my assessment.

The bundled contents are a mix of XML + YAML (for syntax highlighting grammars) and XML + JSON (for themes).
I think that makes it pretty clear that they qualify as "content" and not as "code" - they are purely "non-executable data".

As for including the original sources, yes, that would be a massive PITA due to dozens of multi-level git submodules :(
So I would like to avoid that, if possible.

Do you think the way the bundled components are listed in the spec file is OK?
I included version / snapshot information for the two major components (i.e. the git ref of "bat" that this crate is based on, plus the git ref of the Sublime Text grammars repo that was included in bat at that point in time).

As for the other bundled grammars and themes, they are all git submodules / snapshots at random points in time, most repos without git tags, so I don't think I can assign a meaningful version to them.

The licenses for all bundled grammars and themes are listed and included in the license tag, and patched into the cargo metadata so that our tooling (i.e. the %cargo_license{,_summary} macros) works correctly.

The license of the first-party Sublime Text grammars is now also explicitly allowed by Fedora Legal, and classified as LicenseRef-Fedora-UltraPermissive (see https://gitlab.com/fedora/legal/fedora-license-data/-/issues/516 and the associated MR). I included this expression in the license tag of the package for completeness, but I don't think it needs to be "inherited" by applications that use this crate, so I didn't include it in the cargo metadata patch.

Comment 6 Ben Beasley 2024-06-02 13:29:35 UTC
This is a messy case with all the bundled content, I think you’ve handled the details as well as could be reasonably expected, and the result seems acceptable.

Package APPROVED.

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

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


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/share/cargo/registry/two-
  face-0.4.0/CHANGELOG.md
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files

  This is not a serious problem; if it should be fixed, then it should be fixed
  in rust2rpm.


===== 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",
     "MIT License". 24 files have unknown license. Detailed output of
     licensecheck in /home/ben/Downloads/review/2281999-rust-two-
     face/licensecheck.txt

     I did not attempt to independently replicate the analysis of bundled
     content licenses, but it *looks* thorough enough to be complete and
     correct.

[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/cargo, /usr, /usr/share,
     /usr/share/cargo/registry

     This diagnostic is a fedora-review bug.

[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/cargo, /usr,
     /usr/share, /usr/share/cargo/registry

     This diagnostic is a fedora-review bug.

[x]: %build honors applicable compiler flags or justifies otherwise.
[-]: Package contains no bundled libraries without FPC exception.

     FPC exception is no longer required now that there are guidelines for
     bundling; the bundled content here appears to be correctly documented and
     justified, and unbundling would not be possible because the content exists
     in a processed form.

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

     From https://bugzilla.redhat.com/show_bug.cgi?id=2281999#c3, the conent
     license texts are not packaged as plain text files (which would be ideal)
     but they *are* included in a way that users can access and which should
     satisfy the terms of the content licenses.

[x]: The License field must be a valid SPDX expression.
[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]: 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]: 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:
[-]: 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 rust-
     two-face-devel , rust-two-face+default-devel , rust-two-face+syntect-
     default-fancy-devel , rust-two-face+syntect-default-onig-devel , rust-
     two-face+syntect-fancy-devel , rust-two-face+syntect-onig-devel
[x]: Package functions as described.

     (Tests pass)

[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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.

     https://koji.fedoraproject.org/koji/taskinfo?taskID=117956801

[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 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-two-face-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face+default-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face+syntect-default-fancy-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face+syntect-default-onig-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face+syntect-fancy-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face+syntect-onig-devel-0.4.0-1.fc41.noarch.rpm
          rust-two-face-0.4.0-1.fc41.src.rpm
=========================================================================================== rpmlint session starts ==========================================================================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp0fb8n0lp')]
checks: 32, packages: 7

rust-two-face.spec:45: W: unversioned-explicit-provides bundled(sublime-syntax-AWK)
rust-two-face.spec:47: W: unversioned-explicit-provides bundled(sublime-syntax-Ada)
rust-two-face.spec:49: W: unversioned-explicit-provides bundled(sublime-syntax-Apache)
rust-two-face.spec:51: W: unversioned-explicit-provides bundled(sublime-syntax-AsciiDoc)
rust-two-face.spec:53: W: unversioned-explicit-provides bundled(sublime-syntax-CMake)
rust-two-face.spec:55: W: unversioned-explicit-provides bundled(sublime-syntax-CoffeeScript)
rust-two-face.spec:57: W: unversioned-explicit-provides bundled(sublime-syntax-Crontab)
rust-two-face.spec:59: W: unversioned-explicit-provides bundled(sublime-syntax-Crontab-cron_descriptor)
rust-two-face.spec:61: W: unversioned-explicit-provides bundled(sublime-syntax-Crystal)
rust-two-face.spec:63: W: unversioned-explicit-provides bundled(sublime-syntax-Dart)
rust-two-face.spec:65: W: unversioned-explicit-provides bundled(sublime-syntax-Docker)
rust-two-face.spec:67: W: unversioned-explicit-provides bundled(sublime-syntax-DotENV)
rust-two-face.spec:69: W: unversioned-explicit-provides bundled(sublime-syntax-Elixir)
rust-two-face.spec:71: W: unversioned-explicit-provides bundled(sublime-syntax-Elm)
rust-two-face.spec:73: W: unversioned-explicit-provides bundled(sublime-syntax-Email)
rust-two-face.spec:75: W: unversioned-explicit-provides bundled(sublime-syntax-Fish)
rust-two-face.spec:77: W: unversioned-explicit-provides bundled(sublime-syntax-GLSL)
rust-two-face.spec:79: W: unversioned-explicit-provides bundled(sublime-syntax-GraphQL)
rust-two-face.spec:81: W: unversioned-explicit-provides bundled(sublime-syntax-Groff)
rust-two-face.spec:83: W: unversioned-explicit-provides bundled(sublime-syntax-HTML-Twig)
rust-two-face.spec:85: W: unversioned-explicit-provides bundled(sublime-syntax-JavaScript-Babel)
rust-two-face.spec:87: W: unversioned-explicit-provides bundled(sublime-syntax-Jsonnet)
rust-two-face.spec:89: W: unversioned-explicit-provides bundled(sublime-syntax-Julia)
rust-two-face.spec:91: W: unversioned-explicit-provides bundled(sublime-syntax-Kotlin)
rust-two-face.spec:93: W: unversioned-explicit-provides bundled(sublime-syntax-LLVM)
rust-two-face.spec:95: W: unversioned-explicit-provides bundled(sublime-syntax-Lean)
rust-two-face.spec:97: W: unversioned-explicit-provides bundled(sublime-syntax-LiveScript)
rust-two-face.spec:99: W: unversioned-explicit-provides bundled(sublime-syntax-MediaWiki)
rust-two-face.spec:101: W: unversioned-explicit-provides bundled(sublime-syntax-Nginx)
rust-two-face.spec:103: W: unversioned-explicit-provides bundled(sublime-syntax-Ninja)
rust-two-face.spec:105: W: unversioned-explicit-provides bundled(sublime-syntax-Nix)
rust-two-face.spec:107: W: unversioned-explicit-provides bundled(sublime-syntax-Org-mode)
rust-two-face.spec:109: W: unversioned-explicit-provides bundled(sublime-syntax-PowerShell)
rust-two-face.spec:111: W: unversioned-explicit-provides bundled(sublime-syntax-Protobuf)
rust-two-face.spec:113: W: unversioned-explicit-provides bundled(sublime-syntax-Puppet)
rust-two-face.spec:115: W: unversioned-explicit-provides bundled(sublime-syntax-PureScript)
rust-two-face.spec:117: W: unversioned-explicit-provides bundled(sublime-syntax-QML)
rust-two-face.spec:119: W: unversioned-explicit-provides bundled(sublime-syntax-Robot)
rust-two-face.spec:121: W: unversioned-explicit-provides bundled(sublime-syntax-SCSS_Sass)
rust-two-face.spec:123: W: unversioned-explicit-provides bundled(sublime-syntax-SLS)
rust-two-face.spec:125: W: unversioned-explicit-provides bundled(sublime-syntax-Slim)
rust-two-face.spec:127: W: unversioned-explicit-provides bundled(sublime-syntax-Stylus)
rust-two-face.spec:129: W: unversioned-explicit-provides bundled(sublime-syntax-SublimeEthereum)
rust-two-face.spec:131: W: unversioned-explicit-provides bundled(sublime-syntax-Svelte)
rust-two-face.spec:133: W: unversioned-explicit-provides bundled(sublime-syntax-Swift)
rust-two-face.spec:135: W: unversioned-explicit-provides bundled(sublime-syntax-SystemVerilog)
rust-two-face.spec:137: W: unversioned-explicit-provides bundled(sublime-syntax-TOML)
rust-two-face.spec:139: W: unversioned-explicit-provides bundled(sublime-syntax-Terraform)
rust-two-face.spec:141: W: unversioned-explicit-provides bundled(sublime-syntax-TypeScript)
rust-two-face.spec:143: W: unversioned-explicit-provides bundled(sublime-syntax-VimL)
rust-two-face.spec:145: W: unversioned-explicit-provides bundled(sublime-syntax-Vue)
rust-two-face.spec:147: W: unversioned-explicit-provides bundled(sublime-syntax-Zig)
rust-two-face.spec:149: W: unversioned-explicit-provides bundled(sublime-syntax-cmd-help)
rust-two-face.spec:151: W: unversioned-explicit-provides bundled(sublime-syntax-gnuplot)
rust-two-face.spec:153: W: unversioned-explicit-provides bundled(sublime-syntax-hosts)
rust-two-face.spec:155: W: unversioned-explicit-provides bundled(sublime-syntax-http-request-response)
rust-two-face.spec:157: W: unversioned-explicit-provides bundled(sublime-syntax-varlink)
rust-two-face.spec:161: W: unversioned-explicit-provides bundled(sublime-theme-1337-Scheme)
rust-two-face.spec:163: W: unversioned-explicit-provides bundled(sublime-theme-Coldark)
rust-two-face.spec:165: W: unversioned-explicit-provides bundled(sublime-theme-Solarized)
rust-two-face.spec:167: W: unversioned-explicit-provides bundled(sublime-theme-TwoDark)
rust-two-face.spec:169: W: unversioned-explicit-provides bundled(sublime-theme-dracula-sublime)
rust-two-face.spec:171: W: unversioned-explicit-provides bundled(sublime-theme-gruvbox)
rust-two-face.spec:173: W: unversioned-explicit-provides bundled(sublime-theme-onehalf)
rust-two-face.spec:175: W: unversioned-explicit-provides bundled(sublime-theme-sublime-monokai-extended)
rust-two-face.spec:177: W: unversioned-explicit-provides bundled(sublime-theme-zenburn)
rust-two-face+default-devel.noarch: E: spelling-error ('syntect', 'Summary(en_US) syntect -> syntactic')
rust-two-face+default-devel.noarch: E: spelling-error ('syntect', '%description -l en_US syntect -> syntactic')
rust-two-face.src: E: spelling-error ('syntect', 'Summary(en_US) syntect -> syntactic')
rust-two-face.src: E: spelling-error ('syntect', '%description -l en_US syntect -> syntactic')
rust-two-face-devel.noarch: E: spelling-error ('syntect', 'Summary(en_US) syntect -> syntactic')
rust-two-face-devel.noarch: E: spelling-error ('syntect', '%description -l en_US syntect -> syntactic')
rust-two-face+default-devel.noarch: W: no-documentation
rust-two-face+syntect-default-fancy-devel.noarch: W: no-documentation
rust-two-face+syntect-default-onig-devel.noarch: W: no-documentation
rust-two-face+syntect-fancy-devel.noarch: W: no-documentation
rust-two-face+syntect-onig-devel.noarch: W: no-documentation
===================================================== 7 packages and 0 specfiles checked; 6 errors, 71 warnings, 32 filtered, 6 badness; has taken 0.8 s ====================================================




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 6

rust-two-face-devel.noarch: E: spelling-error ('syntect', 'Summary(en_US) syntect -> syntactic')
rust-two-face-devel.noarch: E: spelling-error ('syntect', '%description -l en_US syntect -> syntactic')
rust-two-face+default-devel.noarch: E: spelling-error ('syntect', 'Summary(en_US) syntect -> syntactic')
rust-two-face+default-devel.noarch: E: spelling-error ('syntect', '%description -l en_US syntect -> syntactic')
rust-two-face+syntect-default-fancy-devel.noarch: W: no-documentation
rust-two-face+syntect-default-onig-devel.noarch: W: no-documentation
rust-two-face+syntect-fancy-devel.noarch: W: no-documentation
rust-two-face+syntect-onig-devel.noarch: W: no-documentation
rust-two-face+default-devel.noarch: W: no-documentation
 6 packages and 0 specfiles checked; 4 errors, 5 warnings, 28 filtered, 4 badness; has taken 0.4 s 



Source checksums
----------------
https://crates.io/api/v1/crates/two-face/0.4.0/download#/two-face-0.4.0.crate :
  CHECKSUM(SHA256) this package     : 0ccd4843ea031c609fe9c16cae00e9657bad8a9f735a3cc2e420955d802b4268
  CHECKSUM(SHA256) upstream package : 0ccd4843ea031c609fe9c16cae00e9657bad8a9f735a3cc2e420955d802b4268


Requires
--------
rust-two-face-devel (rpmlib, GLIBC filtered):
    (crate(once_cell/default) >= 1.18.0 with crate(once_cell/default) < 2.0.0~)
    (crate(serde/default) >= 1.0.100 with crate(serde/default) < 2.0.0~)
    (crate(serde/derive) >= 1.0.100 with crate(serde/derive) < 2.0.0~)
    (crate(syntect) >= 5.1.0 with crate(syntect) < 6.0.0~)
    (crate(syntect/dump-load) >= 5.1.0 with crate(syntect/dump-load) < 6.0.0~)
    (crate(syntect/parsing) >= 5.1.0 with crate(syntect/parsing) < 6.0.0~)
    cargo
    rust

rust-two-face+default-devel (rpmlib, GLIBC filtered):
    cargo
    crate(two-face)
    crate(two-face/syntect-onig)

rust-two-face+syntect-default-fancy-devel (rpmlib, GLIBC filtered):
    (crate(syntect/default-fancy) >= 5.1.0 with crate(syntect/default-fancy) < 6.0.0~)
    cargo
    crate(two-face)
    crate(two-face/syntect-fancy)

rust-two-face+syntect-default-onig-devel (rpmlib, GLIBC filtered):
    (crate(syntect/default-onig) >= 5.1.0 with crate(syntect/default-onig) < 6.0.0~)
    cargo
    crate(two-face)
    crate(two-face/syntect-onig)

rust-two-face+syntect-fancy-devel (rpmlib, GLIBC filtered):
    (crate(syntect/regex-fancy) >= 5.1.0 with crate(syntect/regex-fancy) < 6.0.0~)
    cargo
    crate(two-face)

rust-two-face+syntect-onig-devel (rpmlib, GLIBC filtered):
    (crate(syntect/regex-onig) >= 5.1.0 with crate(syntect/regex-onig) < 6.0.0~)
    cargo
    crate(two-face)



Provides
--------
rust-two-face-devel:
    bundled(crate(bat))
    bundled(sublime-syntax)
    bundled(sublime-syntax-AWK)
    bundled(sublime-syntax-Ada)
    bundled(sublime-syntax-Apache)
    bundled(sublime-syntax-AsciiDoc)
    bundled(sublime-syntax-CMake)
    bundled(sublime-syntax-CoffeeScript)
    bundled(sublime-syntax-Crontab)
    bundled(sublime-syntax-Crontab-cron_descriptor)
    bundled(sublime-syntax-Crystal)
    bundled(sublime-syntax-Dart)
    bundled(sublime-syntax-Docker)
    bundled(sublime-syntax-DotENV)
    bundled(sublime-syntax-Elixir)
    bundled(sublime-syntax-Elm)
    bundled(sublime-syntax-Email)
    bundled(sublime-syntax-Fish)
    bundled(sublime-syntax-GLSL)
    bundled(sublime-syntax-GraphQL)
    bundled(sublime-syntax-Groff)
    bundled(sublime-syntax-HTML-Twig)
    bundled(sublime-syntax-JavaScript-Babel)
    bundled(sublime-syntax-Jsonnet)
    bundled(sublime-syntax-Julia)
    bundled(sublime-syntax-Kotlin)
    bundled(sublime-syntax-LLVM)
    bundled(sublime-syntax-Lean)
    bundled(sublime-syntax-LiveScript)
    bundled(sublime-syntax-MediaWiki)
    bundled(sublime-syntax-Nginx)
    bundled(sublime-syntax-Ninja)
    bundled(sublime-syntax-Nix)
    bundled(sublime-syntax-Org-mode)
    bundled(sublime-syntax-PowerShell)
    bundled(sublime-syntax-Protobuf)
    bundled(sublime-syntax-Puppet)
    bundled(sublime-syntax-PureScript)
    bundled(sublime-syntax-QML)
    bundled(sublime-syntax-Robot)
    bundled(sublime-syntax-SCSS_Sass)
    bundled(sublime-syntax-SLS)
    bundled(sublime-syntax-Slim)
    bundled(sublime-syntax-Stylus)
    bundled(sublime-syntax-SublimeEthereum)
    bundled(sublime-syntax-Svelte)
    bundled(sublime-syntax-Swift)
    bundled(sublime-syntax-SystemVerilog)
    bundled(sublime-syntax-TOML)
    bundled(sublime-syntax-Terraform)
    bundled(sublime-syntax-TypeScript)
    bundled(sublime-syntax-VimL)
    bundled(sublime-syntax-Vue)
    bundled(sublime-syntax-Zig)
    bundled(sublime-syntax-cmd-help)
    bundled(sublime-syntax-gnuplot)
    bundled(sublime-syntax-hosts)
    bundled(sublime-syntax-http-request-response)
    bundled(sublime-syntax-varlink)
    bundled(sublime-theme-1337-Scheme)
    bundled(sublime-theme-Coldark)
    bundled(sublime-theme-Solarized)
    bundled(sublime-theme-TwoDark)
    bundled(sublime-theme-dracula-sublime)
    bundled(sublime-theme-gruvbox)
    bundled(sublime-theme-onehalf)
    bundled(sublime-theme-sublime-monokai-extended)
    bundled(sublime-theme-zenburn)
    crate(two-face)
    rust-two-face-devel

rust-two-face+default-devel:
    crate(two-face/default)
    rust-two-face+default-devel

rust-two-face+syntect-default-fancy-devel:
    crate(two-face/syntect-default-fancy)
    rust-two-face+syntect-default-fancy-devel

rust-two-face+syntect-default-onig-devel:
    crate(two-face/syntect-default-onig)
    rust-two-face+syntect-default-onig-devel

rust-two-face+syntect-fancy-devel:
    crate(two-face/syntect-fancy)
    rust-two-face+syntect-fancy-devel

rust-two-face+syntect-onig-devel:
    crate(two-face/syntect-onig)
    rust-two-face+syntect-onig-devel



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2281999 --mock-options=--dnf
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api
Disabled plugins: Python, C/C++, PHP, SugarActivity, Perl, Ocaml, Java, Haskell, R, fonts
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 7 Fabio Valentini 2024-06-02 15:26:44 UTC
> This is a messy case with all the bundled content, I think you’ve handled the details as well as could be reasonably expected, and the result seems acceptable.
>
> Package APPROVED.

Thank you! I will also update the existing packages that also bundle this data accordingly.

Comment 8 Fedora Admin user for bugzilla script actions 2024-06-02 15:28:05 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/rust-two-face

Comment 9 Fabio Valentini 2024-06-03 12:09:24 UTC
Imported and built:
https://bodhi.fedoraproject.org/updates/FEDORA-2024-639a8c11f3


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