Grayson Penland: [0:00] Welcome to the "Fedora Podcast," a proud
member of the Destination Linux Network. This is season two, episode
two. This is the podcast here to teach you about how the Fedora
community works with news, interviews, and more.
[0:14] I'm your host, Grayson. Today, I'm joined by Wim Taymans, who
is here to talk about PipeWire. We're also going to speak with
Aleksandra Fedorova about the new Annual Fedora Contributor Survey.
[0:29] [music]
Grayson: [0:30] Stay tuned for that. You're listening to the Fedora
Podcast, a proud member of the Destination Linux network.
[0:37] [music]
Grayson: [0:37] Hi, Wim. How are you doing?
Wim Taymans: [0:46] I'm good. I'm good. Thank you.
Grayson: [0:49] Before we get into PipeWire and the technical stuff,
who are you personally, and how did you get involved in Fedora?
Wim: [0:58] I'm a Belgian programmer. I started programming when I
was young on Commodore 64 and things like that. I cofound the
GStreamer back in the day, in '99. That was a hobby. Fedora was
still Red Hat back then, running on Amiga 500. That was my first
Linux distro.
[1:24] After that, I run Debian and Ubuntu. When I started working
for Red Hat eight years ago, I switched back to Fedora. I'm very
happy with that. From all the GStreamer experience, I started
developing PipeWire four years ago, and now we're here. [laughs]
Grayson: [1:49] You mentioned that you work with the audio system in
Fedora. How does it work right now in Fedora 33 with ALSA and
PulseAudio and JACK? How does that all work right now?
Wim: [2:02] At the lowest levels, you to have the Linux kernel and
the test drivers, which are provided by the ALSA project. ALSA has
two parts, basically, the kernel drivers, and also it has a library
that applications can use.
[2:24] This library's rather big. It has a lot of functionality,
such as plugins that do mixing in all these things, but it's all
rather stacked. What happened is that ALSA wasn't able to implement
all the features that you want from a modern desktop, and people
started looking at alternatives.
[2:47] For example, PulseAudio was developed with that as a bit more
of a dynamic system to manage the ALSA hardware, but also implement
Bluetooth, which is not something ALSA provides. All of the features
that were implemented as ALSA plugins were moved to PulseAudio.
What's left in ALSA that is interesting nowadays is only the wrapper
around the kernel driver.
[3:20] PulseAudio sits on top of ALSA, implements all the routing,
the mixing, the conversion of formats, the management of the
volumes, loading and saving settings, and all of that. [inaudible] a
lot of stuff around ALSA that you can't implement. There's also JACK
which is an alternative to PulseAudio so to say, but only for
professional users.
[3:49] It has a completely different set of goals by design. For
example, it is tuned to be super-low latency. It is tuned to be very
inflexible and static, so you need to configure it. It's rather hard
to configure, and on default-install Fedora, it doesn't play nice
with anything else. You have to touch config files to make it work.
[4:20] You can make JACK and PulseAudio somewhat interoperate.
People do that. There are Fedora Spins that do this and set this up
properly for you, but the JACK ecosystem and together with the JACK
server is very rich.
[4:39] There's a lot of professional apps like digital audio
workstations and tools to make filters and chains and synthesizers
and all these things, but it's very hard to run these on a stock
Fedora. That's the current situation in Fedora 33. Three different
systems, but only one, PulseAudio, that manages all the audio.
Grayson: [5:06] That's a bit of a complicated pile of audio systems.
What is PipeWire in comparison to that combination?
Wim: [5:16] PipeWire is a replacement for the two alternatives that
we have, like PulseAudio and JACK, but it is structured in a
different way. It can transfer anything multimedia-related between
devices and applications.
[5:37] That means images, textures, samples, MIDI, all of that
stuff. As long as it is bytes, it can be sent between applications.
It's different from D-Bus, for example, that applications talk to
each other. It's more structured as a graph, as a multimedia graph,
and it is optimized for performance.
[6:02] This small little layer, it doesn't do very much. It's called
PipeWire, and on top of that, you can implement things like what
PulseAudio does, but also what JACK does. You can re-implement these
existing audio servers on top of PipeWire.
[6:21] The advantage is then you have one common layer for all of
the audio services, and they can all talk to each other,
interoperate, and it becomes one nice little audio experience.
[6:35] You have the PipeWire layer itself, the routing of the media,
and on top of that, we run a media session manager. This is
something that is built-in in PulseAudio that is now abstracted.
It's taken out of it and it runs a separate entity which allows us
to have different behavior depending on where you're running, and
you can customize it more.
[6:59] There's also a PulseAudio replacement server that runs on top
of PipeWire. It's very small, a relatively small daemon that
translate PulseAudio protocol to PipeWire protocol. There's also a
JACK replacement library that makes JACK apps run directly on top of
PipeWire.
Grayson: [7:20] Once we update to Fedora 34, what benefits will the
average user and normal people using workstations see from PipeWire?
Wim: [7:34] Hopefully, first of all, there will be no change. All of
the applications that used to run should still run. It's supposed to
be a drop-in replacement.
[7:46] The PulseAudio server that is currently running is replaced
by a smaller server that talks to PipeWire. The session manager
which was already running in Fedora 33 to do the screen sharing, and
stuff like that, is now also enabled for audio. It will also manage
the audio device. The actual change is the PulseAudio replacement
server.
[8:14] All the applications, they still are the same, they do their
audio stuff, and they have no idea that they're talking to a
different daemon than PulseAudio, but [laughs] realistically, some
people will have less issues.
[8:36] There were issues with PulseAudio where it didn't work so
well on some hardware. Other people will have new issues on hardware
that used to work with PulseAudio but doesn't work so well with
PipeWire. We need to figure out what's going on and how to make
everybody happy.
[8:54] For running things like games, the sentiment seems to be that
it's less latency. There is less latency between the movements that
you do in the game and the sound that comes out of it. Other than
that, it should all work like it did before, hopefully. If there are
bugs, then we need to fix them.
Grayson: [9:22] That would be the benefits for normal people. What
about people who would normally be running JACK, people who run
studios and have big mixers and all that? What benefits will they
see from switching to PipeWire?
Wim: [9:36] Currently, the JACK parts are enabled, but are not 100
percent feature complete. There's two features missing. If you are
running a professional studio and all of that, you may or may not be
able to switch right away.
[10:03] First of all, for a lot of pro audio users that are not
super hardcore, maybe, or they're really able to access a lot of new
apps that were traditionally difficult to run.
[10:18] Tools like Carla to manually route audio to have plugins to
your audio thing. Like for podcasting and things like that, it
becomes a much more out-of-the-box experience. Of course, if you are
using JACK tools, you will see immediately that things are much more
integrated than the rest of the desktop is.
[10:43] Like the control panels where you can configure volumes and
stuff for devices, it's all transferred to JACK apps. All of the
normal PulseAudio apps, they are part of your JACK apps now, too. It
opens a lot of new possibilities which we don't exactly have
explored on yet.
[11:04] I think the biggest benefit now is that many pro audio users
will not have to mess around with JACK anymore. They will be able to
just run their applications out of the box. The more demanding
users, they may or may not have to wait until all of the lost
features are implemented, like latency reporting and freewheeling.
Grayson: [11:29] Lots of people who run JACK are going to use
something that makes it easier for them, like Fedora Jam or Ubuntu
Studio, where it's already set up. With the ease of use of PipeWire
and its abilities to compete with JACK, will things like Ubuntu
Studio, Fedora Jam, be necessary, or could you just go straight to a
workstation and use PipeWire?
Wim: [11:56] Short term, these distros are still needed. Like I
said, not all of JACK features are supported. If you go to an Ubuntu
Studio or like Fedora Jam, you get a completely integrated solution,
with all of the apps there, with the PulseAudio things tuned, with
the kernel tuned for pro audio use cases.
[12:21] This currently is not available in stock Fedora. Short term,
these things are definitely still useful. Long term, we don't know,
of course, how much of these things we can all transfer to stop
Fedora, like the tuning of the kernel and all of that. It's
difficult to say. Short term, yes, still needed.
Grayson: [12:51] You've talked about different awesome benefits of
PipeWire, like being able to use pro audio tools like Carla or the
low-latency options. If I'm running Fedora 33, and I do the normal
upgrade path to 34, will this all be enabled automatically for me,
or do I have to do any fiddling with it?
Wim: [13:14] It should all be automatically enabled for you. The
PulseAudio should be replaced by PipeWire, the PipeWire
implementation, and the audio path should be enabled, so it should
all run automatically on top of PipeWire.
Grayson: [13:32] Switching tracks from audio, there's a slightly
less-talked about subject, which is PipeWire with video. What can
PipeWire do with video?
Wim: [13:44] Yeah, so lots of potential, but for now, it's still
like Fedora 33. We use it for screen sharing, so it's basically the
only way to get textures with Weyland, the compositor, into
applications such as browsers for screen sharing and screen recording.
[14:10] There is also a video processing part in PipeWire, but we
haven't really worked on that yet. It's not really, like you also
need the tools to get this working, video filters, and all of that.
We have not tried to do any of these things.
[14:33] What we did improve for the video part was using EMA Buff
between the compositor and the clients, so that you can avoid some
memory copies. Like for screen sharing in OBS Studio, for example,
it should all be EMA Buff zero [inaudible] , highest possible
performance.
[14:50] One of the things is to improve the video processing
pipelines as well, but yeah, we have been focusing on audio right
now, so it's a bit on the backburner.
Grayson: [15:02] Those features will be coming in a later Fedora
release?
Wim: [15:11] Yes, yes, definitely, yes. It's a lot of work. There is
actually no tool whatsoever for any of the video processing, so like
GUI tools to edit and the processing graphs don't exist. We all have
to build that from scratch.
Grayson: [15:33] You mentioned screen sharing and video processing
on Weyland. How is PipeWire working alongside Flatpack and Weyland
to create a more secure and stable system for Linux apps?
Wim: [15:49] Like I said, the only way to get screen content out of
Weyland, so clients cannot directly get screen content at all under
Weyland, so we go through to a portal. The portal, which is a DBUS
API that gives you access to exactly the screen content that you
want, and with all the permissions that are asked.
[16:16] It's not like some applications can just start grabbing some
data from the screen and share it with everybody on the Internet.
It's all pretty much secured that way, and there is a secure port
between the compositor and the application itself. You cannot really
get in between that.
[16:38] For Flatpack's applications, for example, for PulseAudio
apps that are running in a Flatpack, if they go to the PipeWire
PulseAudio implementation, they will be limited in what they can do,
for example, in Fedora right now.
[16:59] They won't be able to mess with the system volumes and
things like that, or with things from other applications. There is a
limited security there, which you didn't have with PulseAudio. For
example also, the JACK apps, they are not Flatpackable at all using
real JACK.
[17:20] We are transporting them to PipeWire JACK API, which it can
be bundled in Flatpacks then. Hopefully, some of the JACK apps will
become available as Flatpacks, and we get much more access to that
ecosystem as well.
[17:38] We will continue integration with portals, so there is
currently no audio support in the portal. We will be implementing,
so like you will get pop-ups or like you have grant permissions to
applications when they're trying to use the microphone, these
things, which we currently don't have. That is things that we can
now start to think about and start to implement.
Grayson: [18:07] Where outside of Fedora is PipeWire being used
currently, or is it mainly being rolled out in Fedora?
Wim: [18:18] We have other bleeding-edge distros that are eager to
experiment with all these things. You can run this on Arch and
Gentoo. One of the earliest adopters for this rolling release is
that these people testing the git snapshots.
[18:36] I'm not aware if it's the default or not in those distros
and how these things work, but there's a very large community of
people using that. It's part of Automotive Grade Linux which is a
distro aim for cars. It's the default routing system for audio and
video in that distro. It's been worked on.
[19:10] From that project, there's also a new session manager that
we're going to try to implement in Fedora in later versions which is
called WirePlumber, which is like [inaudible] scripts to make stuff
happen in your audio server. It's all very exciting what we can do
with these things.
Grayson: [19:37] Interesting. I didn't know that it was used in cars
now, but that's cool to think about. I have another question about
PipeWire which is what is pw-cat and its suite of tools, and what
are they for?
Wim: [19:53] If you are doing an audio server, you need to be able
to playback samples and record samples.
[20:00] We did have the emulation layer for PulseAudio, and you can
use the PulseAudio tools, but we also implemented native tools that
are the equivalent of all the PulseAudio tools to record from a
device, to playback samples, and things like that. These things get
evolved as we go because there's also a lot of JACK tools that we're
now making a replacement for, like pw-link, which is a new one.
[20:33] There's also a couple of modules that we're making tools of,
like pw-loopback, to route the capture from a microphone directly to
the speakers, and things like that. We also have pw-cli which is a
tool to manipulate objects in the graph.
[20:55] With all these tools, we don't know exactly where we're
going with, but you have to, instead of writing code, you can use
these to do a lot of stuff, like make virtual devices now with
pw-loopback. It's to avoid writing codes, and basically to give a
lot of options for playing around PipeWire. It's both debugging
tools and actual useful tools.
[21:20] [music]
Grayson: [21:20] Thank you, Wim.
Wim: [21:32] Thank you.
[21:33] [music]
Grayson: [21:46] Now, I'm joined by Aleksandra Fedorova. She's here
to talk about the Annual Fedora Contributor Survey. Hi, Aleksandra.
Aleksandra Fedorova: [21:55] Hi there.
Grayson: [21:57] Before we go into talking about the Contributor
Survey, who are you and how are you involved in Fedora?
Aleksandra: [22:05] That's the long story, [laughs] but in short,
I'm Aleksandra Fedorova. I work in Red Hat. I work on continuous
integration topics in Fedora CentOS Stream and Red Hat Enterprise
Linux, but I was a Fedora contributor long before I joined Red Hat.
I was a Fedora contributor for 10 years before joining.
[22:32] I was mostly involved in the Russian Fedora community, and I
was the Fedora Russian...Russian Fedora ambassador. If you were at
the FOSDEM, for example, you may know me from the FOSDEM booth of
Fedora back when this was a thing. I participated mostly in five
last FOSDEMs and worked there, but I'm involved in other areas of
the project now.
Grayson: [23:05] You've proposed the idea of something called the
Fedora Contributor Survey, which has now gone from an idea to a
reality. What is the Fedora Contributor Survey? Where did you get
the idea for it?
Aleksandra: [23:19] I need to clarify first, that Fedora Survey is
not a new idea. It actually was in discussion. I think the ticket
number one in Fedora CoreOS backtracker is actually talking about
pure periodic user and contributor surveys. Conversation was going
over six years.
[23:39] For me, personally, the trigger to start being involved in
this topic and to move forward with this was the conversation about
default editor for Fedora, which I was following on Fedora mailing
list. When I was reading the discussion, I was thinking that it's
interesting to see different opinions and different people
highlighting pros and cons of a change.
[24:13] In fact, we don't have any reasonable source of data to make
such decisions and to talk really about which applications are more
used, which are preferred by the community, by the users, and so on.
We only have anecdotal references. I know a person who uses Emacs,
for example, or I know a person who uses Beam.
[24:39] We don't know how many, we don't know how often, and we have
no way to reason about it and make decisions in Fedora-based on data
rather than feelings and expectations, in stereotypes, maybe.
[24:56] This is where it was a triggering moment for me to go and
actually think about the ways how we can learn about the Fedora user
or Fedora contributors, their choices, their preferences in the
applications and services we have in Fedora.
Grayson: [25:14] Has this sort of survey ever been done in Fedora
before?
Aleksandra: [25:19] Exactly the Fedora Contributor Survey, we
haven't run anything like this in Fedora, I think. I'm not in Fedora
from the very beginning, so maybe I don't have a full information.
As I mentioned, and also discussion to run the survey itself is six
years old, but we only finally got there and run it.
[25:49] We did run some different types of surveys in the last year,
in the previous year, which was targeting more of the ambassadors,
the outreach, and different areas. For the Contributor Survey, this
was the first one.
Grayson: [26:05] With that in mind of what the purpose of this data
is, who are you hoping will respond to it? New people, or veteran
users, or coders, and contributors? Are there any specific groups
you'd like to get data from?
Aleksandra: [26:21] The question which I mentioned as a trigger, can
be actually asked in a very wide range of different audiences. In
all of these audiences, it will be an interesting topic to discuss.
[26:41] When we were developing the idea further, we understood that
we don't try to learn everything about everyone at the same time at
the first try. We scoped down the survey a bit so we can make it
more effective and we can learn as we go.
[27:03] In this particular edition of a survey, we are focusing on
the contributors. It doesn't mean just package maintainers. It means
contributors of any kind. If you're contributing to testing, if
you're contributing into infrastructure, contributing via support
channels, or even filing bug reports, or contributing via testing,
they're all sorts of design and so on.
[27:27] Here we want to not just ask what do you use, but we also
try to add like a second dimension to it and try to maybe find the
correlations between the tools you use and for example, services you
use, or roles you have in a project.
[27:56] Is there a correlation between two different parameters, not
just the majority of people using VIM, for example? No. Is there a
correlation between VIM users and users of Firefox browser?
Something like that.
[28:16] We are targeting contributors because we also want to know
the correlations with your participation in the Fedora project.
Again, what's your role? If you're a packager, do you still use the
same tool? Do you use the same communication channels? Do you use
the same news channels? and so on.
[28:40] I'm honestly not sure this will give us some major insights
when we first run and when we first try, but this is just the
initial attempt and we will see how it works and how it can be
improved.
Grayson: [28:59] Why should these contributors you're targeting want
to take it? Are there any incentives or is it purely a, "Do you want
to contribute to Fedora and give us more insights?"
Aleksandra: [29:08] The easy answer, if you contribute to Fedora,
you get a badge. If you're a badge collector, please join and get
one. The longer answer is it will be very helpful for Fedora project
to be aware of its contributor base. It is good for a contributor to
tell the rest of the community that we exist and they have specific
choices and they have specific preferences.
[29:38] This will give us the idea and maybe possibilities to find
new connections to find new special interest groups and to direct
Fedora project better so that we address the needs and the
preferences of the actual contributors of a project. The main reason
why you should take it is you should be part of a project and you
should influence the direction of a project, and survey is one of
the ways how you do that.
Grayson: [30:14] Kind of you can share your opinion with the rest of
the project in an easy way.
Aleksandra: [30:20] Yeah.
Grayson: [30:21] For this survey, what platform are you guys going
to use to let people take it and why did you choose whatever you did?
Aleksandra: [30:33] In this area, I'm no expert. We have people from
Fedora Infrastructure, for example, people who already have
experience in running surveys, and we have tools to do that, so we
kindly asked them for help and they provided us with technical
support on that side.
[30:55] We are using the LimeSurvey platform. It's a hosted service.
We don't have a self-hosted instance. We use the service provided to
us. LimeSurvey is a good alternative to more, how do you say, data
greedy services out there. It's more open and more respectful to the
privacy of the participants and so on.
[31:25] This is not the first time we use LimeSurvey as a platform.
We already use it for some outreach surveys for the Mindshare work.
Again, I didn't want to spend too much time on developing a special
platform for this, so we went with the easy and more or less option
which fits our needs and will be enough for what we purpose.
Grayson: [31:55] Very cool. I'm looking at it now and it's
open-source, on GitHub, and everything.
Aleksandra: [32:00] It's a nice service. It's open-source, and it
tries to be in line with expectations of the open-source community.
Grayson: [32:09] When this survey closes and we get the results, are
there any particular things you hope to clarify, or do you expect
that we'll have to wait for another year or so of doing this survey
before we'll see any clear trends or patterns?
Aleksandra: [32:30] We definitely are going to do initial analysis
and present data at Fedora Nest in August. The questions I have in
mind is, the most interesting part for me would be correlation
between Fedora news and discussion channels, and the Fedora roles in...
[32:57] We can maybe identify if we have clusters of people who are
contained in one communication medium or way of communicating which
don't exchange that much of information with another cluster of
people, and then we maybe consider ways to address that. Or maybe we
will see that we're equally distributed across all possible
communication channels and this will be a great result for us.
[33:27] Questions like this already can be answered from this
survey. Also, keep in mind it's indeed just the first step in
setting up a yearly tradition of having the surveys. Once we will do
it a couple more times, we will learn better what we can and what we
cannot do with this kind of survey.
[33:51] I'm looking for the feedback for the current survey because
this survey right now is kind of meta survey. We want to have
feedback on the survey itself so that we know how to improve next
time. This part of the answers, the feedback part, is almost as
important as the answers to the questions of the survey itself.
Grayson: [34:20] My next question was, who gets to see the results?
If you're presenting them at Nest, that's just about everyone.
Aleksandra: [34:28] This is a bit tricky question. When you do a
survey, you have different way to access the results. The raw data
of the survey will be available for the Fedora council members and
for the technical administrator of the survey. This data, while we
don't expect it to be sensitive or private, we also don't want the
risk of people being identified by the answers they give or the
comments they will write.
[35:10] We will be accessing the raw data, but then we will sanitize
it and remove the things which may expose people who provided the
answers and feedback. Then we will be doing some aggregated
analysis. That analysis or the statistics we get from the survey
then will be publicly available.
[35:34] We cannot publish the raw data as is for everyone to see,
because we need this additional check before we make it public.
Fedora Consult will be doing that. I will be involved in that work
from the beginning.
Grayson: [35:57] Thank you for coming on the podcast and talking
about this, Aleksandra.
Aleksandra: [36:00] Thank you for inviting me. It was really nice
experience.
Grayson: [36:04] That was Aleksandra Fedorova. A red hatter working
on CI for REL. The last item in this show today is what I'm calling
what's going on Fedora. The first item is the Fedora elections are
over. The council seat was won by Aleksandra Fedorova, who we just
talked to about the survey.
[36:27] The FESCo seats were won by Neal Gompa, Stephen Gallagher,
Dan Čermák, and Mohan Boddu. I'm sorry, Mohan, I probably ruined
your name. The Mindshare seat was won by Onuralp.
[36:45] In other news, the Red Hat desktop engineering team is
hiring and all of our official IRC channels have moved from freenode
to Libera.chat, or Libera.chat, however you want to pronounce it.
[37:01] Thanks to Ben Cotton, the federal program manager for this
news in his Friday's Fedora facts you can find those at
communityblog.fedoraproject.org
.
[37:11] [music]
Grayson: [37:11] Thanks to Wim Taymans and Aleksandra Fedorova for
coming on this episode. Our music is made by Tricknology and our
website is at podcast.fedoraproject.org
, where you can find show notes
and all of the other things.
[37:32] I'm your host, Grayson, and you're listening to the Fedora
Podcast, a proud member of the Destination Linux Network. I'll see
you in two weeks.
[37:41] [music]