wwmm / easyeffects

Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
GNU General Public License v3.0
6.18k stars 264 forks source link

AppStream metainfo XML file doesn't pass validation #1569

Closed rffontenelle closed 2 years ago

rffontenelle commented 2 years ago

EasyEffects Version

6.2.5

What package are you using?

Arch (easyeffects)

Distribution

Arch Linux

Describe the bug

When playing around easyeffects packaging I notice it fails on meson test because the AppStream file doesn't pass appstream-util's validate-strict command set in data/meson.build.

Expected Behavior

AppStream XML file passes strict validation test and meson test exits successfully.

Debug Log

meson-test.logs
``` Log of Meson test suite run on 2022-06-12T19:59:01.203863 Inherited environment: SHELL=/bin/bash BUILDTOOL=devtools SUDO_GID=0 PYTHONHASHSEED=0 TEXTDOMAINDIR=/usr/share/locale SUDO_COMMAND='/bin/bash -c bash -c cd\ /startdir;\ makepkg\ "$@" -bash --syncdeps --noconfirm --log --holdver --skipinteg --install' SUDO_USER=root PWD=/build/easyeffects/src SOURCE_DATE_EPOCH=1655074630 LOGNAME=builduser CXXFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS' COMMAND_MODE=legacy LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now HOME=/build LANG=C.UTF-8 MAKEFLAGS=-j6 TERM=xterm-256color USER=builduser SHLVL=1 DEBUGINFOD_URLS='https://debuginfod.archlinux.org ' XDG_DATA_DIRS=/build/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share CHOST=x86_64-pc-linux-gnu PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl CFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection' SUDO_UID=0 MAIL=/var/mail/builduser BUILDTOOLVER=20220207-2-any OLDPWD=/build/easyeffects/src TEXTDOMAIN=pacman-scripts _=/usr/bin/meson 1/2 Validate desktop file OK 0.00s 22:59:01 MALLOC_PERTURB_=32 /usr/bin/desktop-file-validate data/com.github.wwmm.easyeffects.desktop ----------------------------------- output ----------------------------------- ------------------------------------------------------------------------------ 2/2 Validate appstream file FAIL 0.04s exit status 1 22:59:01 MALLOC_PERTURB_=78 /usr/bin/appstream-util validate-strict --nonet data/com.github.wwmm.easyeffects.metainfo.xml ----------------------------------- output ----------------------------------- stdout: data/com.github.wwmm.easyeffects.metainfo.xml: FAILED: • tag-missing : is not present • value-missing : is not present • style-invalid :
  • requires sentence case [tab do not show a volume scale anymore. More details about the problem and the solution for it can be found on #1211] • style-invalid :
  • requires sentence case [and #1427] • style-invalid :
  • requires sentence case [our pipeline was active and the spectrum widget was visible] • style-invalid :
  • requires sentence case [to or recording from our devices the filters will be unlinked after the timeout is reached. This is done to make sure] • style-invalid :
  • cannot end in '.' [we do not waste CPU power processing silence.] • style-invalid :
  • requires sentence case [we do not waste CPU power processing silence.] • style-invalid :
  • cannot end in '.' [mean.] • style-invalid :
  • requires sentence case [mean.] • style-invalid :
  • cannot end in '.' [The autogain plugin now allows the maximum history to be set and does not use `libebur128` histogram mode anymore.] • style-invalid :
  • cannot end in '.' [This should avoid the cases where the `Integrated` loudness gets stuck forever in the same value.] • style-invalid :
  • cannot end in '.' [EasyEffects icon has been updated in a way that should make it visible in QT desktops.] • style-invalid :
  • cannot end in '.' [The command line option that returns the global bypass state is working again.] • style-invalid :
  • cannot end in '.' [Better support for computer suspending.] • style-invalid :
  • cannot end in '.' [Fixed a bug where trying to create an autoloading profile without having presets caused the application to crash.] • style-invalid :
  • cannot end in '.' [Fixed a bug where setting a equalizer band `quality` to `zero` would lead to an application crash.] • style-invalid :
  • cannot end in '.' [LibAdwaita is used to create some parts of our window and for handling the switching between dark and light themes.] • style-invalid :
  • cannot end in '.' [The settings menu has been redesigned using LibAdwaita widgets.] • style-invalid :
  • cannot end in '.' [The `Reset All Settings` function in our menu should work in Flatpak now.] • style-invalid :
  • cannot end in '.' [More robust parsing to import APO presets saved with comma as thousands separator in central frequency band.] • style-invalid :
  • cannot end in '.' [When a spinbutton is filled with an out of range value, now it is updated with the lowest/highest value rather than resetting to the previous one.] • style-invalid :
  • cannot end in '.' [The application window now remembers the maximized state and restores it on the next opening event.] • style-invalid :

    does not end in '.|:|!' [The `tbb` library is a new dependency] • style-invalid :

  • cannot end in '.' [The Limiter and the Multiband Compressor plugins can now use an optional external sidechain.] • style-invalid :
  • cannot end in '.' [The Autogain plugin now allows the user to select which Loudness is used as reference for the volume correction.] • style-invalid :
  • cannot end in '.' [The APO Profile Import feature of Equalizer plugin now parses the "Pre Amplification" parameter.] • style-invalid :
  • cannot end in '.' [Optional Cubic Volume can be enabled in General Settings.] • style-invalid :
  • cannot end in '.' [PipeWire monitor streams are now excluded and removed from the applications list.] • style-invalid :
  • cannot end in '.' [Hopefully crashes like the one reported at [1172]( are fixed.] • style-invalid :
  • cannot end in '.' [Prevented a case in which Spectrum was crashing.] • style-invalid :
  • cannot end in '.' [Pavucontrol is not added anymore to input applications list on systems with localization different than English.] • style-invalid :
  • requires sentence case [built-in PipeWire session manager. More information at issue [1144](] • style-invalid :
  • cannot end in '.' [If the Limiter or the Maximizer are set in the last position of the plugin stack, new plugins are added at the second to last position in order to prevent hardware damage on eventually high output level.] • style-invalid :
  • cannot end in '.' [Removing an application from the blocklist, its previous enabled state is restored.] • style-invalid :
  • cannot end in '.' [When editing presets files in an external editor, duplicated entries won't be shown in our presets menu.] • style-invalid :
  • cannot end in '.' [Now the blocklist is correctly set when switching presets.] • style-invalid :
  • cannot end in '.' [Now the status of the global bypass button is correctly updated when changing plugin stack.] • style-invalid :
  • cannot end in '.' [Some icons not showing in Plasma DE with Breeze icon theme should appear now.] • style-invalid :
  • cannot end in '.' [Updated Chinese translation.] • style-invalid :
  • cannot end in '.' [Updated Italian translation.] • style-invalid :
  • cannot end in '.' [The multiband compressor plugin now uses the stereo multiband compressor plugin from Linux Studio Plugins instead of the one from Calf Studio.] • style-invalid :
  • cannot end in '.' [The limiter plugin now uses the stereo limiter plugin from Linux Studio Plugins instead of the one from Calf Studio.] • style-invalid :
  • cannot end in '.' [The echo canceller sampling rate is now properly set.] • style-invalid :
  • cannot end in '.' [The threshold parameter from the deesser plugin is now saved to the preset file.] • style-invalid :
  • cannot end in '.' [Improved band splitting for crystalizer with new default intensity values.] • style-invalid :
  • cannot end in '.' [Depending on the input gain or output gain values the corresponding level bars could not be aligned.] • style-invalid :
  • cannot end in '.' [When adding more equalizer bands they are set to `Bell` instead of `Off`.] • style-invalid :
  • cannot end in '.' [Equalizer APO presets loading is now working properly on locales different than C.] • style-invalid :
  • cannot end in '.' [Improved linking management between port filter nodes in PipeWire.] • style-invalid :
  • cannot end in '.' [The Loudness plugin is being used again for the reasons described at This means that is an optional dependency again.] • style-invalid :
  • cannot end in '.' [Improved equalizer interface.] • style-invalid :
  • cannot end in '.' [Now we use a sidechain LSP compressor that allows the user to select and external source as the sidechain input.] • style-invalid :
  • cannot end in '.' [We now support the LSP compressor `Boosting` mode.] • style-invalid :
  • is too long [When `split-channels` is enabled in the equalizer the imported APO preset will be applied only to the channel being visualized in the window. This will allow to import different presets for each channel instead of just settings the same values to both.] maximum is 250 chars • style-invalid :
  • requires sentence case [a look at and] • style-invalid :
  • requires sentence case [gtkmm3 was replaced by gtkmm4] • style-invalid :
  • cannot end in '.' [Gstreamer was replaced by native PipeWire filters.] • style-invalid :

    does not end in '.|:|!' [New libraries are being used and some of the librarires that were optional before are now required] • style-invalid : Too many

    tags for a good description [5/4] • translations-required : has no translations stderr: Validation of files failed ------------------------------------------------------------------------------ Summary of Failures: 2/2 Validate appstream file FAIL 0.04s exit status 1 Ok: 1 Expected Fail: 0 Fail: 1 Unexpected Pass: 0 Skipped: 0 Timeout: 0 ```

  • Additional Information

    It passes appstream-utils validate-relax command:

    $ appstream-util validate-relax --nonet data/com.github.wwmm.easyeffects.metainfo.xml.in 
    data/com.github.wwmm.easyeffects.metainfo.xml.in: OK
    vchernin commented 2 years ago

    Does arch or makepkg actually require validate-strict for packages? appstream-glib (provides appstream-util ) is barely maintained and is generally rather outdated and unhelpful. Arch should move to libappstream.

    We have a script here to automate part of the metainfo release creation, but we don’t test against validate-strict.

    rffontenelle commented 2 years ago

    Nope. It doesn't event require a [check()](https://wiki.archlinux.org/title/Creating_packages#check()) function. But I decided to file this issue because it was a simple meson test, not manually appstream-util validate strict, that caused the error.

    Maybe replace validate-strict with validate-relax in data/meson.build ?

    I was thinking about PRing a fix in the appstream XML file, unless it is as intended by the project.

    wwmm commented 2 years ago

    Maybe replace validate-strict with validate-relax in data/meson.build ?

    It seems fine too me. I never run meson test.

    vchernin commented 2 years ago

    I’d suggest appstreamcli validate --pedantic provided by libappstream. Indeed maybe appstream-util validate-relax too.

    I was thinking about PRing a fix in the appstream XML file, unless it is as intended by the project.

    Unfortunately unless appstream-util removes rules like max 1600x900 screenshots, there is little point trying to satisfy it IMO.

    rffontenelle commented 2 years ago

    Thanks for the appstreamcli suggestion. I proposed the above linked PR because I feel that fixing the meson.build seems relatively important for a smooth build & test workflow, because those who run meson test will spot errors.