Bug 2444639

Summary: Review Request: flood - A modern web UI for various torrent clients
Product: [Fedora] Fedora Reporter: Maksym Hazevych <mhazevych>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: package-review, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://flood.js.org/
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 177841    
Attachments:
Description Flags
The .spec file difference from Copr build 10191241 to 10198856
none
The .spec file difference from Copr build 10198856 to 10220441 none

Description Maksym Hazevych 2026-03-04 20:19:26 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-43-x86_64/10158557-flood/flood.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-43-x86_64/10158557-flood/flood-4.13.0-1.fc43.src.rpm
Description: Flood is a monitoring service for various torrent clients. It's a Node.js
service that communicates with your favorite torrent client and serves a decent
web UI for administration.
Fedora Account System Username: mks-h
Successful Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=143024283

Hi, this is my first package and I need a sponsor. I've been packaging this software in COPR for eight month, so I've already fixed a few issues and I don't think it has any obvious errors anymore. The lint still erroneously reports a "spelling error" triggered by the "js" in "Node.js", though. I'd appreciate a tip on how to fix this (or should the description not even mention Node.js?).

My package Git history: https://github.com/mks-h/specs

The upstream has been stale for awhile, but now there's a new maintainer and they are decently active, having released a few minor updates already.

Upstream Git: https://github.com/jesec/flood
New maintainer's introduction: https://github.com/jesec/flood/issues/843

Comment 1 Fedora Review Service 2026-03-04 20:27:23 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10191241
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2444639-flood/fedora-rawhide-x86_64/10191241-flood/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 2 Vít Ondruch 2026-03-05 13:29:28 UTC
Please look at the packaging guidelines:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/

My concerns are specifically the bundling which likely happens in this package, therefore these two sections are my concern:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/#_bundled_licenses
https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/#_automatic_requires_and_provides

Comment 3 Maksym Hazevych 2026-03-07 01:48:30 UTC
Thank you for the review!

I've updated the package to properly use the LICENSE file that was already present in the source, as well as to include licenses of the bundled dependencies. To get the list of licenses I've modified the project's build script and ran it right after the commit of the last release.
Here's the build script change: https://github.com/mks-h/flood/commit/16746a31082d702372bf8dcf3580c721abfad538
I'll try to upstream this once the package passes review.

As for the automatic requires and provides, they aren't present in this package since the project doesn't distribute node_modules. Instead, the bundle is transformed and minified into chunks of JavaScript files under the assets directory (plus the entry-point in bin).

Here's the provides of the binary rpm:
flood = 4.13.0-3.fc45

Here's the requires of the binary rpm:
/bin/sh
/bin/sh
/bin/sh
/usr/bin/node
nodejs
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1

The source RPM differs by only requiring this:
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
systemd-rpm-macros

I've tried to add a Node.js require in %check, like documented: https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/#_build_testing_in_check
But since this isn't a library package, just requiring it makes it run the webserver (indefinitely).

I've also noticed and fixed the use of %setup macro from downloading the npm source twice (for some reason I've been using '-b 0' without '-T', so I removed it).

Last thing I changed, is I replaced the %autorelease macro with the manual release number, since my commit history is not a reliable way to tell how many builds I released on COPR. I can change it back to %autorelease before the package get its own Fedora Package Sources repo, if absolutely necessary. BTW, is it fine if the release number skips e.g. from 1 to 3 because of a commit that wasn't used to actually release a build?

Updated spec file: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-43-x86_64/10198757-flood/flood.spec
Updated SRPM: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-43-x86_64/10198757-flood/flood-4.13.0-4.fc43.src.rpm

Comment 4 Fedora Review Service 2026-03-07 01:53:55 UTC
Created attachment 2132367 [details]
The .spec file difference from Copr build 10191241 to 10198856

Comment 5 Fedora Review Service 2026-03-07 01:53:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10198856
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2444639-flood/fedora-rawhide-x86_64/10198856-flood/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 6 Vít Ondruch 2026-03-09 09:58:08 UTC
(In reply to Maksym Hazevych from comment #3)
> Thank you for the review!

These were just a few hints. Sorry but I don't have ambitions to do a full review and I might went silent any time.

> I've updated the package to properly use the LICENSE file that was already
> present in the source, as well as to include licenses of the bundled
> dependencies. To get the list of licenses I've modified the project's build
> script and ran it right after the commit of the last release.
> Here's the build script change:
> https://github.com/mks-h/flood/commit/
> 16746a31082d702372bf8dcf3580c721abfad538
> I'll try to upstream this once the package passes review.

👍

> As for the automatic requires and provides, they aren't present in this
> package since the project doesn't distribute node_modules. Instead, the
> bundle is transformed and minified into chunks of JavaScript files under the
> assets directory (plus the entry-point in bin).

If the automation worked, that would be for your benefit. But if it does not work, then the provides still needs be provided somehow. This is the JS specific guideline referring to the generic guidelines:

https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/#_bundling_of_other_libraries

> I've tried to add a Node.js require in %check, like documented:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/
> #_build_testing_in_check
> But since this isn't a library package, just requiring it makes it run the
> webserver (indefinitely).

Good effort. The webserver could be run in background and queried by `curl`?

There is also a way to run upstream test suite:

https://github.com/jesec/flood/blob/cfc961c7e6620f3b53460034305488b1725d7278/package.json#L58

Although I don't know what it does specifically and I would not be surprised if `vitest` is not in Fedora.

Checking the Debian package included in the sources, it does something very minimal, but sometimes better than nothing:

https://github.com/jesec/flood/blob/master/distribution/debian/flood/tests/pkg-js/test

> BTW, is it fine if the release number skips e.g. from 1 to 3
> because of a commit that wasn't used to actually release a build?

That is fine. The only thing which matters is upgrade path. So the older package has to have lover NVR (name-version-release) then the new one. You can use `rpmdev-vercmp` for version comparison

Comment 7 Maksym Hazevych 2026-03-13 00:52:38 UTC
> These were just a few hints.

I appreciate it nonetheless, the guidelines are quite overwhelming for a newcomer.

I've updated the package to have Provides, as well as the same kind of test in check as there is in the linked debian package.

> There is also a way to run upstream test suite:

The upstream test suite is quite complex, requires rTorrent to be installed, and seems to have a Dockerfile for its environment... It doesn't succeed for me, probably because I missed some of the complex setup. I don't think it's worth the trouble to try to make it work in a package check.

Updated spec file: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-44-x86_64/10220436-flood/flood.spec
Updated SRPM: https://download.copr.fedorainfracloud.org/results/mks-h/Flood/fedora-44-x86_64/10220436-flood/flood-4.13.0-6.fc44.src.rpm

Comment 8 Maksym Hazevych 2026-03-13 00:54:41 UTC
Also, there's both nodejs and nodejs-devel in the BuildRequires, because Fedora 42 and 43 wouldn't build with just nodejs-devel (unlike Fedora 44, which didn't mind).

Comment 9 Fedora Review Service 2026-03-13 00:56:00 UTC
Created attachment 2133234 [details]
The .spec file difference from Copr build 10198856 to 10220441

Comment 10 Fedora Review Service 2026-03-13 00:56:03 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10220441
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2444639-flood/fedora-rawhide-x86_64/10220441-flood/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.