flathub / com.github.wwmm.pulseeffects

https://flathub.org/apps/details/com.github.wwmm.pulseeffects
11 stars 6 forks source link

Update to 5.0.x #44

Closed ghost closed 2 years ago

ghost commented 3 years ago

May involve some change and challenge, as it now uses and depends on pipewire, but absolutely necessary ASAP.

TheEvilSkeleton commented 3 years ago

The beta version from flathub-beta is bumped to 5.0.X.

There's an instruction on how to install the flathub-beta repo: https://github.com/flathub/flathub#using-the-flathub-repository

rodrgz commented 3 years ago

Why not upgrade to 5.0.x now?

Just as an example, the version in fedora's repo is 5.0.3-2.fc34.

kon14 commented 3 years ago

The beta build is also quite outdated at this point as it currently provides 5.0.0 as opposed to the latest 5.0.3.

Quoting the project's dev:

From PulseEffects 5.0.0 to 5.0.3 some critical bugs have been fixed. In this time window even the legacy branch had to receive fixes for critical bugs that also affect 5.0.0.

vchernin commented 3 years ago

I have made some basic attempts to fix this issue in #48 and #49. I didn't get very far as shown in those PRs. See here and here for bugs surrounding getting pulseeffects>5 in a flatpak.

I did find an easy fix for a dependency (boost) in #50, but that doesn't help a lot unfortunately.

TheEvilSkeleton commented 3 years ago

@vchernin it's not a PulseEffects issue, but a runtime issue. PulseEffects 5.0.3 requires PipeWire >=0.3.24 but the GNOME runtime ships with an older version, from what I understood. See https://github.com/flathub/com.github.wwmm.pulseeffects/pull/46#issuecomment-812296973.

vchernin commented 3 years ago

@TheEvilSkeleton in #48 I attempted to build pulseeffects with the latest pipewire (0.3.26) instead of what is provided in the gnome runtime. This didn’t seem to help, although it’s entirely possible I didn’t integrate/link the newer pipewire properly.

TheEvilSkeleton commented 3 years ago

Why not upgrade to 5.0.x now?

Just as an example, the version in fedora's repo is 5.0.3-2.fc34.

Because >=5.X doesn't support PulseAudio anymore. Most distros still use PulseAudio.

vchernin commented 3 years ago

Yes this is indeed a problem, although I’d argue this is something upstream should find a solution for, and usually flathub policy is to try and follow upstream. Perhaps pulseeffects splitting into two apps and giving them distinct names would help. It may be even more confusing to users if the flatpak behaves differently from the already somewhat confusing upstream issue.

Still I agree just pushing PipeWire builds to the stable flatpak branch would absolutely cause a lot of headaches, unless we find a clear way of notifying users or another solution.

wwmm commented 3 years ago

Perhaps pulseeffects splitting into two apps and giving them distinct names would help

Once I finish the work in my gtk4 branch the application will be renamed https://github.com/wwmm/pulseeffects/issues/874. As I am its only developer and I do not have time to develop 2 separated applications in the usual sense of the word the Pulseaudio branch will remain in maintenance mode forever. So it is better to do the same with its flatpak package.

pushing PipeWire builds to the stable flatpak branch would absolutely cause a lot of headaches

As things are right now it is likely what is going to happen. So my suggestion would be to wait a little longer for the gtk4 branch to be ready and creating a new package for EasyEffects once its is released or I start the app renaming in the gtk4 branch. As the string pulseeffects is in several files for several different reasons it is not just a matter of renaming the executable.

Of all the plugins available in the stable branch the only one that was not ported yet is the webrtc plugin. I probably will have to write an echo cancellation plugin to replace it. Depending on how much this takes in 3 or 4 months EasyEffects will be ready for use.

wwmm commented 3 years ago

Of all the plugins available in the stable branch the only one that was not ported yet is the webrtc plugin

By this I meant ported to PipeWire native filters. The plan is not using GStreamer anymore. If that will be possible in the test signals pipeline remains to be seen. The effects pipelines in the gtk4 branch does not use GStreamer anymore.

vchernin commented 3 years ago

@wwmm thank you for your input, and for your fantastic work on pulseeffects!

So would you say this flatpak’s stable repo should forever stay on 4.0.x (pulseaudio), and in the future a separate easyeffects flatpak should be created for the 5.0.x/gtk4 (pipewire) branch?

DanMan commented 3 years ago

It certainly would be problematic to simply publish the Pipewire version under the com.github.wwmm.pulseeffects ID because that would break it for PA users through an update. A new app ID is the clean solution.

wwmm commented 3 years ago

So would you say this flatpak’s stable repo should forever stay on 4.0.x (pulseaudio), and in the future a separate easyeffects flatpak should be created for the 5.0.x/gtk4 (pipewire) branch?

Yes. Trying to move the flatpak package to PipeWire now will bring the issue mentioned by DanMan. And from a functionality point of view the next big release will be better for flatpak users. Now that native PipeWire filters are replacing GStreamer realtime priorities will finally be used in the audio thread. In the current approach this is impossible because I have to handle this myself and flatpak does not work together with realtimekit. So the GStreamer thread handling audio is unable to use realtime.

hfiguiere commented 3 years ago

51 was just merged on beta.

DanMan commented 3 years ago

Which is bad for reasons mentioned. I urge you not to do this.

TheEvilSkeleton commented 3 years ago

Which is bad for reasons mentioned. I urge you not to do this.

I think you are being confused with what is happening. The update got merged to beta, not to stable. The stable version will stay on version <5 (PulseAudio) for a while, and those that installed the stable version will stay on stable. Version >=5 will be continued only on beta. So this is opt-in, and not automatic, as the user will have to manually install the beta version to get the PipeWire only version.

DanMan commented 3 years ago

Then I have been mistaken indeed. 👍

vchernin commented 3 years ago

@DanMan Yes, as seen above the intention is to keep pulseeffects flatpak stable on pulseaudio either for a very long time or forever.

In the future there hopefully will be an easyeffects flatpak which would be pipewire only.

wwmm commented 3 years ago

Just in case none of you have noticed EasyEffects 6.0.0 has been released. Let me know if something out of the ordinary happens when trying to build a flatpak package.

vchernin commented 3 years ago

Great to hear! @wwmm would you prefer it to be called com.github.wwmm.easyeffects in accordance with com.github.wwmm.pulseeffects?

vchernin commented 3 years ago

Strangely just building the current beta branch didn't work on my local machine, so I tried in #53. I got [135/507] Linking target glib/glibmm/libglibmm-2.4.so.1.3.0Error: module glibmm: Child process exited with code 137, which is odd since it seems to have been fine before. Edit: apparently my machine behaves differently than buildbot, so perhaps that is the cause of all my issues.

I tried building easyeffects, I had some trouble building zita-convolver and gst-plugins-bad, so I just commented them out for now.

Easyeffects itself had this error. It seems like the Flatpak environment doesn't have recent enough C++? I tried using the master branch of gnome platform but that didn't seem to help.

The Meson build system
Version: 0.56.2
Source dir: /run/build/easyeffects
Build dir: /run/build/easyeffects/_flatpak_build
Build type: native build
Project name: easyeffects
Project version: 6.0.0
Using 'CFLAGS' from environment with value: '-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection '
Using 'LDFLAGS' from environment with value: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed '
C compiler for the host machine: ccache cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35.2
Using 'CXXFLAGS' from environment with value: '-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection '
Using 'LDFLAGS' from environment with value: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed '

../meson.build:1:0: ERROR: Value "c++20" (of type "string") for combo option "C++ language standard to use" is not one of the choices. Possible choices are (as string): "none", "c++98", "c++03", "c++11", "c++14", "c++17", "c++1z", "c++2a", "gnu++03", "gnu++11", "gnu++14", "gnu++17", "gnu++1z", "gnu++2a".

A full log can be found at /run/build/easyeffects/_flatpak_build/meson-logs/meson-log.txt
Error: module easyeffects: Child process exited with code 1
wwmm commented 3 years ago

@wwmm would you prefer it to be called com.github.wwmm.easyeffects in accordance with com.github.wwmm.pulseeffects?

I think it is a good idea. Unless there is some reason to do otherwise.

wwmm commented 3 years ago

../meson.build:1:0: ERROR: Value "c++20" (of type "string") for combo option "C++ language standard to use" is not one of the choices

Which compiler version are you using? Here on Arch Linux I have gcc 11.1.0. Or could this be a Meson version problem? Here I have 0.58.1. I did not test with others. I just assumed it would work.

vchernin commented 3 years ago

I remember seeing GCC 10 being used according to the build logs, and meson 0.56.2. I'm not sure exactly where Flatpak sources those, but it's not from my host system (Fedora 34) as that comes with GCC 11.

Presumably we need a newer SDK or runtime.

wwmm commented 3 years ago

As I am using some c++20 features gcc 10 might be a problem. I do not remember now if I am using something that was only implemented in gcc 11. But it is possible.

TheEvilSkeleton commented 3 years ago

Great to hear! @wwmm would you prefer it to be called com.github.wwmm.easyeffects in accordance with com.github.wwmm.pulseeffects?

Once we get EasyEffects working, can we create a new Flatpak package under the ID mention above?

hfiguiere commented 3 years ago

definitely.

vchernin commented 3 years ago

I tried different runtimes, including org.gnome.Platform's master (from gnome-nightly), and none of the currently include gcc 11. I'm not quite sure how to proceed here.

@TheEvilSkeleton I've already started working on it, see the issues discussed here and in #53.

TheEvilSkeleton commented 3 years ago

I tried different runtimes, including org.gnome.Platform's master (from gnome-nightly), and none of the currently include gcc 11. I'm not quite sure how to proceed here.

Yup, I did the same. I also tried 40beta from flathub-beta, but no luck sadly.

hfiguiere commented 3 years ago

You can build meson 0.57 (I think it's enough for C++20). And also upstream should require that version in the meson.build.

hfiguiere commented 3 years ago

See https://github.com/mesonbuild/meson/commit/a7aba905a0e53ebdbaeccb3890291e5c147bd845 for when it was added to meson.

Now it's not enough for gcc 10.2, then upstream would need to relax the requirement a bit, or risk not being buildable on a lot of distros.

wwmm commented 3 years ago

See mesonbuild/meson@a7aba90 for when it was added to meson.

Thanks! I forgot about that.

or risk not being buildable on a lot of distros

I think that by using c++20 features I am already causing that anyway. I will increase the minimum Meson version to 0.57.

hfiguiere commented 3 years ago

the gcc in the GNOME 40 runtime seem to accept -std=c++20, so it's possible that building the right version of meson ought to be enough.

TheEvilSkeleton commented 3 years ago

I tried installing the latest version of Meson, see https://github.com/TheEvilSkeleton/com.github.wwmm.pulseeffects/commit/e90b7d9032fdc4236e51e7d09528baec31458b76#diff-4644890bef7700c69927879d04ee35e504b9beaa2a158604fc618f8a6b7e73c1R362-R375.

However, it still doesn't use the latest version of Meson:

Click to expand
========================================================================
Building module meson in /var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10
========================================================================
Running: pip3 install --ignore-installed --exists-action=i --no-index --find-links="file://${PWD}" --prefix=/app "meson"
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/meson --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --bind-mount=/run/build/meson=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --build-dir=/run/build/meson --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625872695 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG /bin/sh -c 'pip3 install --ignore-installed --exists-action=i --no-index --find-links="file://${PWD}" --prefix=/app "meson"'
Looking in links: file:///run/build/meson
Processing ./meson-0.58.1.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Building wheels for collected packages: meson
  Building wheel for meson (PEP 517) ... done
  Created wheel for meson: filename=meson-0.58.1-py3-none-any.whl size=758357 sha256=dabdaf095576aafea97da0f2174188ca3a4cabb0ad2f2f09198bfc47f81a6098
  Stored in directory: /var/home/TheEvilSkeleton/.cache/pip/wheels/48/a2/64/5690a740155f5083636ebd1f4b45d8ae9d2ca789d3b4a64060
Successfully built meson
Installing collected packages: meson
Successfully installed meson-0.58.1 # <=============== Notice Meson 0.58.1 was installed ####################
FB: unmounting rofiles-fuse /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG
Committing stage build-meson to cache
FB: Running: git rev-parse v6.0.0
FB: Mounting read-only fs: rofiles-fuse /var/home/TheEvilSkeleton/.cache/flatpak-builder-builddir/com.github.wwmm.pulseeffects /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG
========================================================================
Building module easyeffects in /var/home/TheEvilSkeleton/.cache/flatpak-builder/build/easyeffects-21
========================================================================
FB: Running: cp -al /var/home/TheEvilSkeleton/.cache/flatpak-builder/git/https_github.com_wwmm_easyeffects.git /var/home/TheEvilSkeleton/.cache/flatpak-builder/build/easyeffects-21/.git
FB: Running: git config --bool core.bare false
FB: Running: git checkout v6.0.0
Note: switching to 'v6.0.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 2ee3f0b7 updated changelog
FB: Running: git rev-parse --verify --quiet v6.0.0:.gitmodules
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/easyeffects --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/easyeffects-21 --bind-mount=/run/build/easyeffects=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/easyeffects-21 --build-dir=/run/build/easyeffects/_flatpak_build --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625872695 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG meson --prefix=/app ..
Using 'PKG_CONFIG_PATH' from environment with value: '/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig'
Using 'PKG_CONFIG_PATH' from environment with value: '/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig'
The Meson build system
Version: 0.56.2 # <=========== Notice it is using an older Meson of version ##########################
Source dir: /run/build/easyeffects
Build dir: /run/build/easyeffects/_flatpak_build
Build type: native build
Project name: easyeffects
Project version: 6.0.0
Using 'CFLAGS' from environment with value: '-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection '
Using 'LDFLAGS' from environment with value: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed '
C compiler for the host machine: ccache cc (gcc 10.2.0 "cc (GCC) 10.2.0")
C linker for the host machine: cc ld.bfd 2.35.2
Using 'CXXFLAGS' from environment with value: '-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection '
Using 'LDFLAGS' from environment with value: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed '

../meson.build:1:0: ERROR: Value "c++20" (of type "string") for combo option "C++ language standard to use" is not one of the choices. Possible choices are (as string): "none", "c++98", "c++03", "c++11", "c++14", "c++17", "c++1z", "c++2a", "gnu++03", "gnu++11", "gnu++14", "gnu++17", "gnu++1z", "gnu++2a".

A full log can be found at /run/build/easyeffects/_flatpak_build/meson-logs/meson-log.txt
Error: module easyeffects: Child process exited with code 1
FB: Unmounting read-only fs: fusermount -uz /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG
Build failed!

Changing the build-commands of the meson module to

        build-commands:
          - 'which meson'
          - 'pip3 install --ignore-installed --exists-action=i --no-index --find-links="file://${PWD}" --prefix=/app "meson"'
          - 'which meson'
          - '/app/bin/meson --version'

Gives me this:

Click to expand

Running: which meson
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/meson --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --bind-mount=/run/build/meson=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --build-dir=/run/build/meson --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625873243 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG /bin/sh -c 'which meson'
/usr/bin/meson
Running: pip3 install --ignore-installed --exists-action=i --no-index --find-links="file://${PWD}" --prefix=/app "meson"
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/meson --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --bind-mount=/run/build/meson=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --build-dir=/run/build/meson --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625873243 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG /bin/sh -c 'pip3 install --ignore-installed --exists-action=i --no-index --find-links="file://${PWD}" --prefix=/app "meson"'
Looking in links: file:///run/build/meson
Processing ./meson-0.58.1.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Building wheels for collected packages: meson
  Building wheel for meson (PEP 517) ... done
  Created wheel for meson: filename=meson-0.58.1-py3-none-any.whl size=758357 sha256=a8df27cecc639256a87f365d221daa4976689de84eeaea21e1a2976f4c11a9aa
  Stored in directory: /var/home/TheEvilSkeleton/.cache/pip/wheels/48/a2/64/5690a740155f5083636ebd1f4b45d8ae9d2ca789d3b4a64060
Successfully built meson
Installing collected packages: meson
Successfully installed meson-0.58.1
Running: which meson
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/meson --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --bind-mount=/run/build/meson=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --build-dir=/run/build/meson --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625873243 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG /bin/sh -c 'which meson'
/app/bin/meson
Running: /app/bin/meson --version
FB: Running: flatpak build --die-with-parent --env=FLATPAK_BUILDER_BUILDDIR=/run/build/meson --nofilesystem=host --filesystem=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --bind-mount=/run/build/meson=/var/home/TheEvilSkeleton/.cache/flatpak-builder/build/meson-10 --build-dir=/run/build/meson --bind-mount=/run/ccache=/var/home/TheEvilSkeleton/.cache/flatpak-builder/ccache --unshare=network --env=SOURCE_DATE_EPOCH=1625873243 '--env=CFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=CXXFLAGS=-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection ' '--env=LDFLAGS=-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed ' --env=CCACHE_DIR=/run/ccache --env=PATH=/run/ccache/bin:/app/bin:/usr/bin --env=LD_LIBRARY_PATH=/app/lib --env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --env=FLATPAK_BUILDER_N_JOBS=12 /var/home/TheEvilSkeleton/.cache/flatpak-builder/rofiles/rofiles-EiLBDG /bin/sh -c '/app/bin/meson --version'
0.56.2

I do not understand how Meson is still at an older version even if I have installed the latest version.

vchernin commented 2 years ago

I haven't had luck with manually adding meson 0.57 either.

Meson 0.57.2 is merged (not yet in a release) in freedesktop-sdk, so I assume it will make it in the freedesktop 21.08 runtime.

We could try to use that (adding gnome dependencies manually), or wait for the gnome 41 runtime later on. AFAIK the gnome runtime is a derivative/fork of the freedesktop one, so it should get the newer meson eventually.

hfiguiere commented 2 years ago

did you set the PYTHONPATH in build env?

vchernin commented 2 years ago

I got EasyEffects Flatpak building (but not running after the fact). A lot of modules needed manual updates, and some new things needed to be added. See https://github.com/vchernin/com.github.wwmm.easyeffects

I used the latest master from gnome-nightly for the runtime. I couldn't get newer meson from pip working in the current 40 runtime.

There are some modules that were causing trouble, so that still needs work before I'm actually confident everything is correct. rubberband to be missing at runtime, causing it to not run, and updating it causes build issues. Also I couldn't get webrtc-audio-processing working yet. The icon is also broken. There's also commented out stuff that should just be removed when it's all working.

I'll try working on this more later, for now I'm happy it at leasts builds.

Edit: I got the last dependencies in, and I think I figured out PYTHONPATH. I'll tale a look at the icon later.

wwmm commented 2 years ago

Also I couldn't get webrtc-audio-processing working yet

Why are you trying to get this working? Maybe one they I will be able to improve our echo canceller plugin by using that webrtc library. But at this moment we use the speexdsp library to cancel echo.

vchernin commented 2 years ago

Why are you trying to get this working? Maybe one they I will be able to improve our echo canceller plugin by using that webrtc library. But at this moment we use the speexdsp library to cancel echo.

Thanks for clarifying, I recalled the webrtc library being on the dependency list but clearly I was mistaken. I'll remove the webrtc one for now. speexdsp is now included in that linked manifest.

vchernin commented 2 years ago

Got it running now! (ignoring the icon)

image

vchernin commented 2 years ago

Got meson 0.58.1 working using pip, on the gnome 40 runtime. Thanks @TheEvilSkeleton @hfiguiere, I incorporated some of your suggestions and manifest modules as they helped get that working, if it's ok should those be left in the final manifest? I'll try to figure out the icon next.

Does this seem ready otherwise for a PR at flathub/flathub?

Edit: I might try to get yelp for in-app help working.

hfiguiere commented 2 years ago

if it runs and you are statisfied with it, please submit the PR. It'll get reviewed.

vchernin commented 2 years ago

https://github.com/flathub/flathub/pull/2429

vchernin commented 2 years ago

EasyEffects is now live on Flathub stable. Thank you everyone who helped! If you have issues please report it in the EasyEffects repo, and maybe check https://github.com/flathub/flathub/pull/2429 before posting. This issue can now be closed as there isn't much else to do in this issue.

The PulseEffects Flatpak stable version will continue to stay on PulseAudio and GTK 3 (4.x branch). The PulseEffects Flatpak beta version will continue to stay on PipeWire and GTK 3 (5.x branch). EasyEffects (6.x branch) is recomended if you are using PipeWire, the 4.x and 5.x PulseEffects branches are under maintenance mode and likely won't receive signifcant updates (unless someone wants to of course).

vchernin commented 2 years ago

In #57 I have proposed to EOL (end of life) the PulseEffects beta (PipeWire 5.x) branch and recommend users to migrate to EasyEffects. EasyEffects uses PipeWire and is actively maintained unlike the PulseEffects 5.x PipeWire branch. This won't affect the stable (PulseAudio 4.x) branch.

If anyone doesn't want this to happen please comment here.

For context see https://github.com/wwmm/easyeffects/issues/1120 and the comment directly above.

vchernin commented 2 years ago

Ok, the beta branch is now EOL since no one said anything otherwise should happen. The stable (PulseAudio) version of PulseEffects Flatpak will be unaffected.

If you really still do want the 5.x beta you should be able to ignore the warning, or just build it yourself. If you have suggestions for how EasyEffects should be improved please open an issue at https://github.com/wwmm/easyeffects.

I'll close this issue since there isn't much to discuss here anymore.