Bug 2463266 - Review Request: gobject-linter - A tree-sitter-based linter for GObject/C applications
Summary: Review Request: gobject-linter - A tree-sitter-based linter for GObject/C app...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Fabio Valentini
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/bilelmoussaoui/gob...
Whiteboard:
Depends On: 2468678
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-04-27 18:39 UTC by W. Michael Petullo
Modified: 2026-07-08 23:06 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-07-08 23:03:42 UTC
Type: ---
Embargoed:
decathorpe: fedora-review+


Attachments (Terms of Use)

Description W. Michael Petullo 2026-04-27 18:39:54 UTC
Spec URL: https://www.flyn.org/SRPMS/rust-goblint.spec
SRPM URL: https://www.flyn.org/SRPMS/rust-goblint-0-1.20260427git4bde7b0.fc44.src.rpm
Description: A tree-sitter-based linter for GObject/C applications
Fedora Account System Username: mikep

Comment 1 Fabio Valentini 2026-04-28 11:30:51 UTC
Taking this review.

Initial comments:

1. This isn't following the Naming guidelines for Rust packages.

It's not a Rust crate packaged from crates.io, so it MUST NOT use the "rust-" name prefix.
In general, I would recommend that you just follow the template documented here:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_non_crate_rust_project

It should also make some other things easier (i.e. no defining "cargo_install_lib 0" necessary).

2. The package isn't following the guidelines for snapshot based versions.

The snapshot information should now be in Version, not in Release.
Use something like "Version: 0~%{commitdate}.git%{shortcommit}" instead.

3. The package uses %autochangelog but not %autorelease.

This is often broken. Either use both or neither, and you SHOULD use both.

4. The "License" tag is incomplete.

Even without having built the package, I am 100% certain that the output of "%cargo_license_summary" during the build will not just be one line containing "MIT". The License tag needs to reflect *all* dependencies that get statically linked into the final executable.

You also generate the LICENSE.dependencies file, but then don't use it. It needs to be listed as "%license LICENSE.dependencies" in the %files list.

5. The fact that the project currently builds successfully seems to be a lucky accident.

The project contains a sub-crate at "gobject-ast" that is referenced as a path-based dependency, but it's not set up as a "workspace" member. This only works by accident right now, and is probably not intentional in the upstream project. It might be good to fix this.

Comment 2 W. Michael Petullo 2026-05-04 14:23:47 UTC
Spec URL: https://www.flyn.org/SRPMS/goblint.spec
SRPM URL: https://www.flyn.org/SRPMS/goblint-0~20260427.git4bde7b0-1.fc44.src.rpm
Description: A tree-sitter-based linter for GObject/C applications
Fedora Account System Username: mikep

(1) Drop "rust-" prefix from package name.

(2) Move snapshot information to version rather than release.

(3) Use %autorelease.

(4) Update License tag. I am not sure how to normalize the license terms, so this might require more work.

(5) Please see https://github.com/bilelmoussaoui/goblint/issues/77.

Comment 3 W. Michael Petullo 2026-05-04 18:49:02 UTC
Spec URL: https://www.flyn.org/SRPMS/goblint.spec
SRPM URL: https://www.flyn.org/SRPMS/goblint-0~20260504.gitf58e4d8-1.fc44.src.rpm
Description: A tree-sitter-based linter for GObject/C applications
Fedora Account System Username: mikep

(5) I notified upstream about the sub-crate issue (https://github.com/bilelmoussaoui/goblint/issues/77), and Bilal Elmoussaoui closed the issue as fixed after making a change today. I updated the package to use this most recent commit.

Comment 4 W. Michael Petullo 2026-05-05 17:55:38 UTC
Spec URL: https://www.flyn.org/SRPMS/gobject-linter.spec
SRPM URL: https://www.flyn.org/SRPMS/gobject-linter-0~20260505.git0a8b69c-1.fc44.src.rpm
Description: A tree-sitter-based linter for GObject/C applications
Fedora Account System Username: mikep

- Changed name of package to reflect upstream rename that happened today (https://github.com/bilelmoussaoui/gobject-linter/issues/74).

Unfortunately, this new version requires crate(unidiff/default) >= 0.4.0 and < 0.5.0~, which does not yet appear in Fedora Rawhide.

Comment 5 Fedora Review Service 2026-05-05 17:59:23 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10427244
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2463266-gobject-linter/fedora-rawhide-x86_64/10427244-gobject-linter/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
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 6 Fabio Valentini 2026-05-11 10:40:07 UTC
Thanks for the update - I'll take a look.

Comment 7 W. Michael Petullo 2026-05-12 14:25:52 UTC
[fedora-review-service-build]

Comment 8 Fedora Review Service 2026-05-13 03:47:45 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10452586
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2463266-gobject-linter/fedora-rawhide-x86_64/10452586-gobject-linter/fedora-review/review.txt

Found issues:

- No gcc, gcc-c++ or clang found in BuildRequires
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/

Please know that there can be false-positives.

---
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 9 Fabio Valentini 2026-06-04 15:32:51 UTC
Sorry for the delay. I reviewed unidiff and wanted to wait with this one until it was available in the rawhide repos, and then took a few days off work and forgot.

The package looks pretty good now, just a few minor comments:

1. I would recommend to copy the contents between "### BEGIN LICENSE SUMMARY ###" and "###  END LICENSE SUMMARY  ###" into the spec file above the License tag. It helps keeping track and with seeing an obvious diff when updating the License tag on package update.

Something like this:

```SourceLicense:  MIT
# (Apache-2.0 OR MIT) AND BSD-3-Clause
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
# Apache-2.0 OR MIT
# MIT
# MIT AND Unicode-DFS-2016 AND BSD-2-Clause AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain
# MIT OR Apache-2.0
# MPL-2.0
# Unlicense OR MIT
License:        %{shrink:
	(MIT OR Apache-2.0) AND Unicode-DFS-2016 AND
	(Apache-2.0 OR MIT) AND
	(MIT AND Unicode-DFS-2016 AND BSD-2-Clause AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain) AND
	(MIT OR Apache-2.0) AND
	MIT AND
	MPL-2.0 AND
	(Unlicense OR MIT)
}
# LICENSE.dependencies contains a full license breakdown
```

On the topic of License tag, it looks OK but it also contains duplicates and could be slightly simplified (like dropping duplicate "AND" clauses:

```
License:        %{shrink:
    MIT
    AND BSD-2-Clause
    AND BSD-3-Clause
    AND MPL-2.0
    AND Unicode-DFS-2016
    AND LicenseRef-Fedora-Public-Domain
    AND (Apache-2.0 OR MIT)
    AND (Unlicense OR MIT)
}
```

This applies (almost) all simplifications that are documented to be valid:
 1. flatten nested AND clauses (associativity)
 2. drop duplicates when both "A OR B" and "B OR A" are present since they're considered equivalent (commutativity)


2. The "tree-sitter" crate was now updated to version 0.26 in Fedora 44+, you *could* drop the downstream patch that downgrades the dependency. But you can also keep it for now, that would make the package also compatible with Fedora 43 if that's what you want to do.

Comment 10 W. Michael Petullo 2026-06-04 21:34:24 UTC
Spec URL: https://www.flyn.org/SRPMS/gobject-linter.spec
SRPM URL: https://www.flyn.org/SRPMS/gobject-linter-0~20260505.git0a8b69c-1.fc44.src.rpm
Description: A tree-sitter-based linter for GObject/C applications
Fedora Account System Username: mikep

- Adjusted license information according to comment #9.
- I decided to stick with the tree-sitter patch. I will adjust once the packages are fully published.

Thank you, Fabio.

Comment 11 Fedora Review Service 2026-06-05 07:02:26 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10569905
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2463266-gobject-linter/fedora-rawhide-x86_64/10569905-gobject-linter/fedora-review/review.txt

Found issues:

- No gcc, gcc-c++ or clang found in BuildRequires
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/

Please know that there can be false-positives.

---
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 12 Fabio Valentini 2026-06-25 22:08:49 UTC
Thank you for the update, and sorry for the delay to get back to this.
The package now looks good to me.

===

Package is based on the "non-crate Rust project" template from the Rust Packaging Guidelines, simplifying the review.

✅ package contains only permissible content
✅ package builds and installs without errors on rawhide
✅ test suite is run and all unit tests pass
🫤 latest version is packaged:
   There are now tagged releases. Please update to v0.1.2 when / if possible, but this can happen after import.
✅ license matches upstream specification and is acceptable for Fedora
✅ licenses of statically linked dependencies are correctly taken into account
✅ license file is included with %license in %files
✅ package complies with Rust Packaging Guidelines

Package APPROVED.

Comment 13 Fedora Admin user for bugzilla script actions 2026-07-08 22:20:13 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/gobject-linter
Monitoring:
Anitya project is accessible by this link 
`https://release-monitoring.org/project/390779`
 you can modify it manually.
Package wasn't created in Anitya, reason: `Bad Request, some necessary arguments were not provided.`.

Comment 14 W. Michael Petullo 2026-07-08 22:56:11 UTC
Thank you, Fabio!

Comment 15 Fedora Update System 2026-07-08 23:02:07 UTC
FEDORA-2026-dd33abcc15 (gobject-linter-0~20260505.git0a8b69c-1.fc45) has been submitted as an update to Fedora 45.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-dd33abcc15

Comment 16 Fedora Update System 2026-07-08 23:06:37 UTC
FEDORA-2026-dd33abcc15 (gobject-linter-0~20260505.git0a8b69c-1.fc45) has been pushed to the Fedora 45 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.