Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 2104533 - Review Request: fuse2fs - fuse implementation of e2fs -- epel7 only
Summary: Review Request: fuse2fs - fuse implementation of e2fs -- epel7 only
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Maxwell G
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-07-06 14:47 UTC by Dave Dykstra
Modified: 2022-08-08 11:50 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-08-08 11:50:52 UTC
Type: ---
Embargoed:
maxwell: fedora-review+


Attachments (Terms of Use)

Description Dave Dykstra 2022-07-06 14:47:42 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04598928-fuse2fs/fuse2fs.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04598928-fuse2fs/fuse2fs-1.46.5-1.el7.src.rpm
Description: FUSE file system client for ext2/ext3/ext4 file systems
Fedora Account System Username: dwd

fuse2fs is a standard part of the current e2fsprogs package but is not available on EL7 because the e2fsprogs is too old there.  This package is only to make fuse2fs available there via EPEL7, via building a recent version of e2fsprogs and installing only the one program.

fedora-review is available at
https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/fedora-rawhide-x86_64/04598928-fuse2fs/fedora-review/review.txt

Comment 1 Maxwell G 2022-07-12 18:56:43 UTC
Some initial comments:

> Group: System Environment/Base

Group tags must not be present in Fedora specfiles.

> ./configure

Does this project use autotools? If so, you should use %configure. Also, please use `%make_build` instead of calling make directly, if possible.

> cp misc/%{name} %{buildroot}%{_sbindir}/
> cp misc/%{name}.1 %{buildroot}%{_mandir}/man1

This should be `cp -p`

You're missing the URL directive.

> # download with:
> # $ curl -o %{name}-%{version}.tar.gz \
> #    https://codeload.github.com/tytso/e2fsprogs/tar.gz/v%{version}
> Source0: %{name}-%{version}.tar.gz

Don't do this, if you can avoid it. Use https://github.com/tytso/e2fsprogs/archive/v%{version}/%{name}-%{version}.tar.gz instead.

> %{!?_licensedir:%global license %%doc}

Shouldn't this be above the first usage of %license? Also, please install the README in %doc.

> License: GPLv2

The project is not entirely licensed under the GPLv2 and other licenses apply. Please make sure to include all of these in the License tag.

Comment 2 Dave Dykstra 2022-07-12 22:15:16 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04630859-fuse2fs/fuse2fs.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04630859-fuse2fs/fuse2fs-1.46.5-2.src.rpm
Description: FUSE file system client for ext2/ext3/ext4 file systems
Fedora Account System Username: dwd

Thanks, Maxwell G!

I have addressed your comments, please take another look.  For some reason I don't understand copr didn't make a new fedora-review file.

Comment 3 Dave Dykstra 2022-07-12 22:16:21 UTC
Oh I just realized I forgot the %make_build, will make version 3.

Comment 5 Maxwell G 2022-07-13 05:10:25 UTC
%{?_smp_mflags} is redundant when %make_build is used. Please remove it. I will continue with the review later, I just noticed that on first glance.

Comment 7 Maxwell G 2022-07-14 21:28:28 UTC
I ran this against an EPEL 7 mock chroot, as this package will only be built there.

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

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


== Issues ==

- [!] You need to include a license breakdown comment over the License field. See https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_multiple_licensing_scenarios.

You can probably just copy
```
This package, the EXT2 filesystem utilities, are made available under
the GNU Public License version 2, with the exception of the lib/ext2fs
and lib/e2p libraries, which are made available under the GNU Library
General Public License Version 2, the lib/uuid library which is made
available under a BSD-style license and the lib/et and lib/ss
libraries which are made available under an MIT-style license.  Please
see lib/uuid/COPYING for more details for the license for the files
comprising the libuuid library, and the source file headers of the
libet and libss libraries for more information.
```
from the NOTICE file

- [!]: NOTICE mentions other license files. Shouldn't those also be installed?

- [!]: Please remove `Requires: fuse-libs`. This is handled by the dependency generator.

- [!]: You need to escape the %make_build macro in the changelog by
adding an extra %.

Ctrl+F for NOTE to find my other interspersed comments.

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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", "Apache License 2.0", "GNU Library
     General Public License, Version 2.0 GNU General Public License,
     Version 2", "*No copyright* GNU General Public License", "FSF
     Unlimited License (with License Retention) [generated file]", "FSF
     Unlimited License [generated file]", "*No copyright* GNU General
     Public License, Version 2", "GNU General Public License v3.0 or
     later", "FSF Unlimited License (with License Retention)", "*No
     copyright* [generated file]", "GNU General Public License v2.0 or
     later", "GNU General Public License", "GNU General Public License,
     Version 2", "NTP License BSD 3-Clause License GNU Library General
     Public License, Version 2.0 GNU General Public License, Version 2",
     "GNU Lesser General Public License", "NTP License", "BSD 3-Clause
     License", "GNU Library General Public License v2 or later [obsolete
     FSF postal address (Mass Ave)]", "GNU Library General Public License,
     Version 2.0", "GNU General Public License, Version 2 [obsolete FSF
     postal address (Mass Ave)]", "FSF All Permissive License", "GNU
     Library General Public License v2 or later", "*No copyright* GNU
     Library General Public License, Version 2.0", "*No copyright* NTP
     License", "GNU General Public License GNU Library General Public
     License, Version 2.0", "GNU General Public License v2.0 or later
     [obsolete FSF postal address (Mass Ave)]", "ISC License", "*No
     copyright* BSD 3-Clause License", "BSD 3-Clause License Apache License
     1.0". 1935 files have unknown license. Detailed output of licensecheck
     in /home/gotmax/Sync/git-
     repos/packaging/fedora_rpms/review.repos/2104533-fuse2fs/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: 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.
NOTE: Handled by %configure
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.

NOTE: You probably should reset the Release to 1 when you import the
package to Fedora. It's fine to keep bumping it for the review if that
helps you keep track of the changes.

[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.
[!]: Requires correct, justified where necessary.
NOTE: See the comment about the fuse-libs Requires.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[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:
[-]: 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).
NOTE: See the note above
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[?]: Package should compile and build into binary rpms on all supported
     architectures.
[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]: Fully versioned dependency in subpackages if applicable.
[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 debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
fuse2fs.x86_64: W: position-independent-executable-suggested /usr/sbin/fuse2fs
NOTE: This seems specific to EL 7. This error doesn't show up when
running rpmlint against the version that's built for rawhide. Not sure
if EL 7's compiler flags have -fPIE

fuse2fs.spec:45: W: macro-in-%changelog %make_build
NOTE: You need to escape the %make_build macro in the changelog by
adding an extra %.

fuse2fs.x86_64: E: explicit-lib-dependency fuse-libs
NOTE: See above comments

Source checksums
----------------
https://github.com/tytso/e2fsprogs/archive/v1.46.5/fuse2fs-1.46.5.tar.gz :
  CHECKSUM(SHA256) this package     : 0286b718da1491c65c4e51453d33a25d5dad29b0964f915e627c363b4c11cb92
  CHECKSUM(SHA256) upstream package : 0286b718da1491c65c4e51453d33a25d5dad29b0964f915e627c363b4c11cb92


Requires 
--------
fuse2fs (rpmlib, GLIBC filtered):
    fuse-libs
    libc.so.6()(64bit)
    libfuse.so.2()(64bit)
    libfuse.so.2(FUSE_2.5)(64bit)
    libfuse.so.2(FUSE_2.6)(64bit)
    libfuse.so.2(FUSE_2.8)(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

fuse2fs-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
fuse2fs:
    fuse2fs
    fuse2fs(x86-64)

fuse2fs-debuginfo:
    fuse2fs-debuginfo
    fuse2fs-debuginfo(x86-64)



Generated by fedora-review 0.8.0 (e988316) last change: 2022-04-07
Command line :/usr/bin/fedora-review -b 2104533 -m epel-7-x86_64
Buildroot used: centos+epel-7-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: PHP, fonts, Ocaml, R, Python, Perl, Haskell, Java, SugarActivity
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 8 Dave Dykstra 2022-07-15 19:33:58 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04636006-fuse2fs/fuse2fs.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04636006-fuse2fs/fuse2fs-1.46.5-5.el7.src.rpm
Description: FUSE file system client for ext2/ext3/ext4 file systems
Fedora Account System Username: dwd

Latest version is above.  Below are my responses to the comments.

(In reply to Maxwell G from comment #7)
> - [!] You need to include a license breakdown comment over the License
> field. See
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> LicensingGuidelines/#_multiple_licensing_scenarios.
> 
> You can probably just copy
> ```
> This package, the EXT2 filesystem utilities, are made available under
> the GNU Public License version 2, with the exception of the lib/ext2fs
> and lib/e2p libraries, which are made available under the GNU Library
> General Public License Version 2, the lib/uuid library which is made
> available under a BSD-style license and the lib/et and lib/ss
> libraries which are made available under an MIT-style license.  Please
> see lib/uuid/COPYING for more details for the license for the files
> comprising the libuuid library, and the source file headers of the
> libet and libss libraries for more information.
> ```
> from the NOTICE file

Done

> - [!]: NOTICE mentions other license files. Shouldn't those also be
> installed?

I don't see most of them in the source code.  The RHEL8 e2fsprogs package

https://git.centos.org/rpms/e2fsprogs/blob/c8s/f/SPECS/e2fsprogs.spec

includes only the NOTICE file.  In fact that spec file lists only GPLv2 on
the main package, and fuse2fs is part of the main package.  Maybe that would
be sufficient for this package after all.  What do you think?  The other 
licenses are only on subpackages not installed.

> - [!]: Please remove `Requires: fuse-libs`. This is handled by the
> dependency generator.

Done

> - [!]: You need to escape the %make_build macro in the changelog by
> adding an extra %.

Done

> NOTE: You probably should reset the Release to 1 when you import the
> package to Fedora. It's fine to keep bumping it for the review if that
> helps you keep track of the changes.

Yes that is my plan, and I plan to have only one %changelog entry to start.

> Rpmlint
> -------
> fuse2fs.x86_64: W: position-independent-executable-suggested
> /usr/sbin/fuse2fs
> NOTE: This seems specific to EL 7. This error doesn't show up when
> running rpmlint against the version that's built for rawhide. Not sure
> if EL 7's compiler flags have -fPIE

Sounds like it is optional, so let's leave it out.

Comment 9 Maxwell G 2022-07-15 22:13:47 UTC
(In reply to Dave Dykstra from comment #8)
> > - [!]: NOTICE mentions other license files. Shouldn't those also be
> > installed?
> 
> I don't see most of them in the source code.

There's lib/uuid/COPYING.

> The RHEL8 e2fsprogs package
> 
> https://git.centos.org/rpms/e2fsprogs/blob/c8s/f/SPECS/e2fsprogs.spec
> 
> includes only the NOTICE file.

I'm not sure about the license policies for RHEL, but in Fedora, all licenses that apply to the code included in the package must be included and accounted for.

> In fact that spec file lists only GPLv2 on
> the main package, and fuse2fs is part of the main package.  Maybe that would
> be sufficient for this package after all.  What do you think?  The other 
> licenses are only on subpackages not installed.

If you're sure that only the GPLv2 applies to the code included in the fuse2fs binary, then yes and please leave a comment above License: explaining that. Otherwise, all of the other applicable licenses must be part of the License tag and the license files must be marked with %license in files.

Comment 10 Dave Dykstra 2022-07-18 22:38:57 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04641753-fuse2fs/fuse2fs.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/dwd/fuse2fs/epel-7-x86_64/04641753-fuse2fs/fuse2fs-1.46.5-6.el7.src.rpm
Description: FUSE file system client for ext2/ext3/ext4 file systems
Fedora Account System Username: dwd

The Makefile shows that fuse2fs is linked with lib uuid, so I went ahead and added a libuuid.COPYING to %license.  I think it's the best I can do.

Is there anything else?

Comment 11 Dave Dykstra 2022-07-21 15:00:19 UTC
Maxwell, is there anything else or is this ready now?

Comment 12 Maxwell G 2022-07-21 15:21:02 UTC
(In reply to Dave Dykstra from comment #11)
> Maxwell, is there anything else or is this ready now?

Hmm, it seems that I missed your previous message. I'll look at this later. Sorry about that.

Comment 13 Maxwell G 2022-07-22 01:15:54 UTC
Thank you for making the changes! I see that the package still builds successfully in the COPR. Package approved! 

On import, be sure to retire the rawhide branch with `fedpkg retire "EPEL 7 only package"`. I have added the package to release-monitoring.org for you. I would also recommend adding it to Koschei after you've imported it.

Comment 14 Fedora Update System 2022-07-28 01:35:56 UTC
FEDORA-EPEL-2022-5f71278f3b has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-5f71278f3b

Comment 15 Fedora Update System 2022-07-29 00:23:25 UTC
FEDORA-EPEL-2022-5f71278f3b has been pushed to the Fedora EPEL 7 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-5f71278f3b

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2022-08-06 00:53:18 UTC
FEDORA-EPEL-2022-5f71278f3b has been pushed to the Fedora EPEL 7 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.