Bug 1836540 - Review Request: mudita24 - ALSA GUI control tool for Envy24 (ice1712) soundcards
Summary: Review Request: mudita24 - ALSA GUI control tool for Envy24 (ice1712) soundcards
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jerry James
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-05-16 18:15 UTC by Erich Eickmeyer
Modified: 2020-06-07 19:47 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-05-29 19:11:07 UTC
Type: ---
Embargoed:
loganjerry: fedora-review+


Attachments (Terms of Use)

Description Erich Eickmeyer 2020-05-16 18:15:54 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01389556-mudita24/mudita24.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01389556-mudita24/mudita24-1.1.0-1.20160218gite38b1a3.fc33.src.rpm
Description:

Mudita24 is a modification of the Linux alsa-tools' envy24control: an
application controlling the digital mixer, channel gains and other hardware
settings for sound cards based on the VIA Ice1712 chipset aka Envy24. Unlike
most ALSA mixer controls, this application displays a level meter for each
input and output channel and maintains peak level indicators. This is based
on Envy24's hardware peak metering feature.
 
Mudita24 provides alternate name to avoid confusion with "envy24control
0.6.0" until changes in this version propagate upstream. As balance to the
"Envy", this project needed some Mudita "In Buddhism the third of the four
divine abidings is mudita, taking joy in the good fortune of another. This
virtue is considered the antidote to envy and the opposite of
schadenfreude."
 
This utility is preferable to alsamixer for those with ice1712-based
cards: M-Audio Delta 1010, Delta 1010LT, Delta DiO 2496, Delta 66, Delta 44,
Delta 410 and Audiophile 2496. Terratec EWS 88MT, EWS 88D, EWX 24/96, DMX
6Fire, Phase 88. Hoontech Soundtrack DSP 24, Soundtrack DSP 24 Value,
Soundtrack DSP 24 Media 7.1. Event Electronics EZ8. Digigram VX442.
Lionstracs, Mediastaton. Terrasoniq TS 88. Roland/Edirol DA-2496.

Fedora Account System Username: eeickmeyer

Comment 1 Artur Frenszek-Iwicki 2020-05-16 23:47:06 UTC
>#find-debuginfo.sh does not pick-up the debuginfo for whatever reason.
>%global debug_package %{nil}
>[...]
>%build
>cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}
You should use the %cmake macro instead of a "raw" cmake call here, it'll ensure that CFLAGS/CXXFLAGS/LDFLAGS are set up properly.

>%install
>rm -rf $RPM_BUILD_ROOT
Don't do this.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

Comment 2 Erich Eickmeyer 2020-05-20 04:38:34 UTC
>You should use the %cmake macro instead of a "raw" cmake call here, it'll ensure that CFLAGS/CXXFLAGS/LDFLAGS are set up properly

Fixed.

>>%install
>>rm -rf $RPM_BUILD_ROOT
>Don't do this.
>https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

There is nothing in that link that says that `rm -rf $RPM_BUILD_ROOT` should not be used. It says `BuildRoot:` should not be used, but that's not what is being done there. Besides, that was part of the default rpm spec template, so does that mean there's a bug in the template?

I'll have new SRPM/SPEC files as soon as COPR starts working again.

Comment 4 Artur Frenszek-Iwicki 2020-05-20 08:32:25 UTC
>There is nothing in that link that says that `rm -rf $RPM_BUILD_ROOT` should not be used.
It says this:
>The contents of the buildroot SHOULD NOT be removed in the first line of %install
I'd argue that nuking the directory counts as "removing its contents". ;)

>Besides, that was part of the default rpm spec template, so does that mean there's a bug in the template?
I guess so. Since some time ago, templates are no longer active by default (i.e. "vim some_new_package.spec" opens with an empty file), so it's possible they've been neglected a bit.

Comment 5 Erich Eickmeyer 2020-05-20 17:05:37 UTC
Thanks, Artur. Either way, I made the correction in the above-posted links (Comment 3). :)

Comment 6 Jerry James 2020-05-28 17:22:16 UTC
I can take this review.  Erich, you offered to swap reviews on fedora-devel-list, with the caveat that you weren't sure of your ability.  I think it would be good for you to do some reviews, to gain more familiarity with packaging guidelines.  Could you attempt a review of bug 1840914?  If it proves too much for you, that's okay.  The fedora-review tool automates a lot of the steps, which should help.

Comment 7 Erich Eickmeyer 2020-05-28 17:55:15 UTC
Hi Jerry, I'll see what I can do. :)

Comment 8 Jerry James 2020-05-28 18:18:42 UTC
All you can do is all I can ask.

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

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

===== ISSUES =====
- Remove these lines at the top of the spec file:

#find-debuginfo.sh does not pick-up the debuginfo for whatever reason.
#when built, the .debug file shows in usr/lib/debug/usr/bin
%global debug_package %{nil}

  They are wrong.  The debuginfo is generated correctly.

- The %cmake macro already includes -DCMAKE_INSTALL_PREFIX:PATH=/usr in its
  expansion, so you don't need to specify it again.  All you need is "%cmake .".

- The %doc macro puts README into /usr/share/doc/mudita24.  The package's
  install target puts README.profiles int /usr/share/doc/mudiat24-1.1.0.  That
  seems wrong.  We should create a single doc directory for both files.  You've
  got at least these alternatives (I haven't tried any of them, so they may
  need some tweaking):
  o Pass -Dmudita24_DOC_DIR:PATH=%{_docdir}/%{name} to %cmake and change the
    last %files entry to %{_docdir}/%{name}/README.profiles
  o At the end of %install, do this:
    mv %{buildroot}%{_datadir}/doc/mudita24-%{version} %{buildroot}%{_datadir}/doc/mudita24
    and make the same %files change as above
  o At the end of %install, do this:
    rm -rf %{buildroot}%{_datadir}/doc/mudita24-%{version}
    And then in %files do this:
    %doc README mudita24/README.profiles
    and just remove the last line in %files

- The %changelog entry has a '-' in the version where it should have a '.';
  it should be 1.1.0-1.20160218gite38b1a3 instead of 1.1.0-1-20160218gite38b1a3.

- Since this package uses pkg-config to find its dependencies, use the
  "pkgconfig" form of dependency for the BuildRequires.  In particular,
  "BuildRequires: pkgconfig(alsa)" instead of alsa-lib-devel, and
  "BuildRequires: pkgconfig(gtk+-2.0)" instead of gtk2-devel.  See
  https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/

- Upstream hasn't been active for awhile, but could you ask them to fix the
  FSF's address?  It's probably best if they just grab a new copy of COPYING
  from https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt as a few other
  minor things have changed in the last decade and a half or so.

===== 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]: 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.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[!]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: 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.
[!]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 2 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.
[x]: Final provides and requires are sane (see attachments).
[?]: 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.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.

     No %check script, but upstream provides no tests.

[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: No rpmlint messages.
[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
-------
Checking: mudita24-1.1.0-1.20160218gite38b1a3.fc33.x86_64.rpm
          mudita24-1.1.0-1.20160218gite38b1a3.fc33.src.rpm
mudita24.x86_64: W: spelling-error Summary(en_US) soundcards -> sound cards, sound-cards, soundboards
mudita24.x86_64: W: spelling-error %description -l en_US alsa -> alas, salsa, balsa
mudita24.x86_64: W: spelling-error %description -l en_US chipset -> chip set, chip-set, chippie
mudita24.x86_64: W: spelling-error %description -l en_US abidings -> abiding, abiding s, bindings
mudita24.x86_64: W: spelling-error %description -l en_US mudita -> audit
mudita24.x86_64: W: spelling-error %description -l en_US alsamixer -> balsamic
mudita24.x86_64: W: spelling-error %description -l en_US Terratec -> Terrace, Terrance, Serrate
mudita24.x86_64: W: spelling-error %description -l en_US Hoontech -> Nontechnical
mudita24.x86_64: W: spelling-error %description -l en_US Digigram -> Diagram, Radiogram
mudita24.x86_64: W: spelling-error %description -l en_US Lionstracs -> Abstractions, Contractions, Transactions
mudita24.x86_64: W: spelling-error %description -l en_US Terrasoniq -> Ultrasonic
mudita24.x86_64: W: incoherent-version-in-changelog 1.1.0-1-20160218gite38b1a3 ['1.1.0-1.20160218gite38b1a3.fc33', '1.1.0-1.20160218gite38b1a3']
mudita24.x86_64: W: unstripped-binary-or-object /usr/bin/mudita24
mudita24.x86_64: E: incorrect-fsf-address /usr/share/licenses/mudita24/COPYING
mudita24.x86_64: W: no-manual-page-for-binary mudita24
mudita24.src: W: spelling-error Summary(en_US) soundcards -> sound cards, sound-cards, soundboards
mudita24.src: W: spelling-error %description -l en_US alsa -> alas, salsa, balsa
mudita24.src: W: spelling-error %description -l en_US chipset -> chip set, chip-set, chippie
mudita24.src: W: spelling-error %description -l en_US abidings -> abiding, abiding s, bindings
mudita24.src: W: spelling-error %description -l en_US mudita -> audit
mudita24.src: W: spelling-error %description -l en_US alsamixer -> balsamic
mudita24.src: W: spelling-error %description -l en_US Terratec -> Terrace, Terrance, Serrate
mudita24.src: W: spelling-error %description -l en_US Hoontech -> Nontechnical
mudita24.src: W: spelling-error %description -l en_US Digigram -> Diagram, Radiogram
mudita24.src: W: spelling-error %description -l en_US Lionstracs -> Abstractions, Contractions, Transactions
mudita24.src: W: spelling-error %description -l en_US Terrasoniq -> Ultrasonic
2 packages and 0 specfiles checked; 1 errors, 25 warnings.


Rpmlint (installed packages)
----------------------------
mudita24.x86_64: W: spelling-error Summary(en_US) soundcards -> sound cards, sound-cards, soundboards
mudita24.x86_64: W: spelling-error %description -l en_US alsa -> alas, salsa, balsa
mudita24.x86_64: W: spelling-error %description -l en_US chipset -> chip set, chip-set, chippie
mudita24.x86_64: W: spelling-error %description -l en_US abidings -> abiding, abiding s, bindings
mudita24.x86_64: W: spelling-error %description -l en_US mudita -> audit
mudita24.x86_64: W: spelling-error %description -l en_US alsamixer -> balsamic
mudita24.x86_64: W: spelling-error %description -l en_US Terratec -> Terrace, Terrance, Serrate
mudita24.x86_64: W: spelling-error %description -l en_US Hoontech -> Nontechnical
mudita24.x86_64: W: spelling-error %description -l en_US Digigram -> Diagram, Radiogram
mudita24.x86_64: W: spelling-error %description -l en_US Lionstracs -> Abstractions, Contractions, Transactions
mudita24.x86_64: W: spelling-error %description -l en_US Terrasoniq -> Ultrasonic
mudita24.x86_64: W: incoherent-version-in-changelog 1.1.0-1-20160218gite38b1a3 ['1.1.0-1.20160218gite38b1a3.fc33', '1.1.0-1.20160218gite38b1a3']
mudita24.x86_64: W: unstripped-binary-or-object /usr/bin/mudita24
mudita24.x86_64: E: incorrect-fsf-address /usr/share/licenses/mudita24/COPYING
mudita24.x86_64: W: no-manual-page-for-binary mudita24
1 packages and 0 specfiles checked; 1 errors, 14 warnings.


Source checksums
----------------
https://github.com/NielsMayer/mudita24/archive/e38b1a39a8ca4f82b74d7b70bf9a3489e37b3588/mudita24-e38b1a3.tar.gz :
  CHECKSUM(SHA256) this package     : fd0db2c1ea3c5ad75d394d965b0152c36fcb6e1a6170aaf0243e25f2358bdd64
  CHECKSUM(SHA256) upstream package : fd0db2c1ea3c5ad75d394d965b0152c36fcb6e1a6170aaf0243e25f2358bdd64


Requires
--------
mudita24 (rpmlib, GLIBC filtered):
    alsa-utils
    libasound.so.2()(64bit)
    libasound.so.2(ALSA_0.9)(64bit)
    libc.so.6()(64bit)
    libgdk-x11-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgtk-x11-2.0.so.0()(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    rtld(GNU_HASH)


Provides
--------
mudita24:
    mudita24
    mudita24(x86-64)


Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -b 1836540 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic, C/C++
Disabled plugins: Perl, R, SugarActivity, PHP, fonts, Python, Ruby, Java, Haskell, Ocaml
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 9 Erich Eickmeyer 2020-05-28 19:18:25 UTC
Thanks, Jerry. :)

> - The %doc macro puts README into /usr/share/doc/mudita24.  The package's
>   install target puts README.profiles int /usr/share/doc/mudiat24-1.1.0.  That
>   seems wrong.  We should create a single doc directory for both files.  You've
>   got at least these alternatives (I haven't tried any of them, so they may
>   need some tweaking):
> [snip]

I went with option #3, looks like it worked.

> pkg-config

Made the changes.

> - Upstream hasn't been active for awhile, but could you ask them to fix the
>   FSF's address?  It's probably best if they just grab a new copy of COPYING
>   from https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt as a few other
>   minor things have changed in the last decade and a half or so.

I'll bug them, but I can't make promises, especially if they haven't been active in a while. Not the first time I've run into this address problem.

Also made the change to the changelog.


New files:

Spec URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01415759-mudita24/mudita24.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01415759-mudita24/mudita24-1.1.0-1.20160218gite38b1a3.fc33.src.rpm

Comment 10 Jerry James 2020-05-28 20:23:46 UTC
(In reply to Erich Eickmeyer from comment #9)
> I'll bug them, but I can't make promises, especially if they haven't been
> active in a while. Not the first time I've run into this address problem.

Yes, that old address is still rampant in the open source world for some reason.  You'd think 15 years would be long enough for people to notice. :-)

Everything looks good now.  This package is APPROVED.

Comment 11 Gwyn Ciesla 2020-05-29 13:18:41 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/mudita24

Comment 12 Fedora Update System 2020-05-29 20:28:08 UTC
FEDORA-2020-a4d01ceff3 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-a4d01ceff3

Comment 13 Fedora Update System 2020-05-29 20:41:31 UTC
FEDORA-2020-1847d3836d has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-1847d3836d

Comment 14 Fedora Update System 2020-05-30 02:04:37 UTC
FEDORA-2020-1847d3836d has been pushed to the Fedora 31 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-1847d3836d \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-1847d3836d

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

Comment 15 Fedora Update System 2020-05-30 04:04:24 UTC
FEDORA-2020-a4d01ceff3 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-a4d01ceff3 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-a4d01ceff3

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

Comment 16 Fedora Update System 2020-06-07 19:46:17 UTC
FEDORA-2020-1847d3836d has been pushed to the Fedora 31 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Fedora Update System 2020-06-07 19:47:30 UTC
FEDORA-2020-a4d01ceff3 has been pushed to the Fedora 32 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.