Video summary
The Extra Packages for Enterprise Linux project serves as a vital bridge between community-driven software development and enterprise stability by rebuilding Fedora content specifically compatible with Red Hat Enterprise Linux and CentOS Stream distributions. Led by Carl George, EPEL operates under a strict "golden rule" that prohibits replacing existing operating system packages to ensure system integrity while offering additional community-maintained additions. Governance is managed by an elected Steering Committee that oversees policies through weekly Matrix meetings, although the process for onboarding new contributors remains complex due to intricate requirements regarding key setup and access permissions.
Significant architectural improvements were introduced in EPEL 10, most notably the adoption of minor versioning aligned with RHEL's rolling application streams like Go and Rust to resolve compatibility issues caused by CentOS Stream advancing ahead of its downstream counterpart. To manage these versions effectively, a "Z-stream" naming convention was implemented as a symlink pointing to the latest compatible build; however, this approach inadvertently created problems for users relying on private mirrors that synced only major branches, pulling in packages incompatible with their older RHEL systems. In response to feedback and potential breakage risks, Red Hat is actively considering a redesign of the repository structure starting with EPEL 11, which might utilize new suffixes like "-s" to clearly distinguish between CentOS-aligned content and standard RHEL-compatible builds unless explicitly overridden by users via DNF variables.
For those interested in contributing or understanding version specifics such as base dependencies and upgrade paths for versions eight through ten, the project directs attention to dedicated documentation pages that provide historical context alongside GitHub threads detailing ZSIM links. While Fedora allows broad contributions ranging from design changes to code submissions due to its community-controlled nature, EPEL functions primarily as an add-on repository where Red Hat retains control over product decisions, meaning meaningful involvement is largely centered on RPM package maintenance rather than architectural redesigns. The project emphasizes that participation is open regardless of perceived skill level and encourages direct communication with Special Interest Groups if official documentation appears dated or inactive, while also pointing users toward resources like the "What can I do for Fedora" guide to find appropriate entry points into the ecosystem.
Read the full video transcript
What if there were some changes coming
to the extra software that you get in
Fedora? Carl George will join us. We'll
ask him some questions about Apple.
[music]
>> [music]
>> Welcome to episode 57 of the Fedora
podcast. My name is Noah Chala. I am
your host. Delighted to be here. And
joining me my co-host, Mr. Eric Hendris.
Eric the IT guy. Welcome in, sir.
>> What's up, Noah? It's been a bit. Glad
we finally got our schedule sorted. It
>> has been awesome and it's going to be a
great episode. We have the opportunity
to talk to Carl George. He joins us from
Red Hat. We're going to talk about Apple
and some ideas that Carl has to make
Apple a little bit cleaner, a little bit
neater, tighter around the edges.
>> How are y'all doing?
>> Good. Carl, welcome into the program.
Can you tell me a little bit for those
who have maybe living under a rock and
aren't familiar with you, can you tell
us a little bit about who you are, what
you do at Red Hat, and what your
involvement with Apple is?
>> Sure. So, my name is Carl George. Uh, I
currently work at Red Hat. Uh, I've been
involved in the Fedora project in Apple
longer than that. Uh, got my start doing
RPM packaging at my previous employer,
Rackspace, in 2014. Um, part of that job
involved maintaining a few Apple
packages and that that was kind of my on
ramp into the Fedora project broader.
Um, since then, since getting started
with Apple, I've done a lot more things
in Fedora than just Apple. And um I get
that question sometimes about how do how
do I get started with Apple. I wouldn't
recommend doing it the way I did. Get
started in Fedora first. [laughter]
That's much smoother path. Um learn from
my mistakes. But yeah, uh when I started
at Red Hat, I was working on the CentOS
team. Uh now I actually am the team lead
for the Apple team at Red Hat inside the
community Linux engineering group. Uh,
so luckily I get to focus my entire day
on what makes Apple tick and how to
improve things and make it better, which
is part of uh, part of what y'all looked
me in here for today to talk about.
>> For sure. And and fun fact, Carl and I
actually went to new hire training the
same week at Red Hat. Uh, that's how I
met Carl in person and went, "Oh, wait.
You're you're that guy? Okay, cool."
>> Yeah, we were uh, a couple of Kevin
Bacon degrees apart. We knew a lot of
the same people and uh, yeah, got to
talking.
Can you tell us a little bit about your
day job, uh, Carl? What does that look
like and what did it look like
transitioning from a volunteer role into
doing this on a day-to-day basis?
>> So, it wasn't a wasn't a direct
transition. I mentioned getting hired to
work on CentOS. Um, it's a little bit of
a funny story. Uh, the guy that hired me
at Red Hat, Jim Parin, uh, I had told
him for years, when are you going to
hire me to come work on Apple? and he
would say nobody gets paid to work on
Apple. But then he got this other wreck
and I went to go work on that for a
little while. Um but then after doing uh
working on CentOS for a few years, uh my
VP approached me and asked uh hey how
would you like to start a team working
on just focused on Apple exclusively and
I said that's kind of funny because
that's what I asked Jim for in the first
place and he said it wouldn't happen
[laughter] and then it eventually did
happen. So things can change. Uh the
transition was not direct. Um, but more
broadly to your point, um, a lot of
times I'll get asked questions like,
"How do I get how do I get hired to work
on open source or how do I get hired at
Apple or at Red Hat specifically?" Um,
it is not by by any means an instant
thing, but participating in open source
is a great way to get a job working on
open source. Sounds kind of obvious when
you say it just in one sentence, but um,
[laughter] some people want to get hired
and then start doing open source things,
but it usually doesn't work like that.
usually become a participant or even a
leader in a lot of these open source
spaces and you get your name out there
and you're in the right place at the
right time whenever some company whether
it's Redhead or otherwise is able to say
we have a headcount we want to put a
resource on working on this thing
specifically and contribute back to open
source and you can't just run up to that
with no experience or no familiarity and
say yeah yeah I'll take that and I'll do
that now you kind of have to already be
in that role doing that volunteer as
much as you're able to in your volunteer
time and then then the company makes
that observation and says this is this
person is the natural fit to fill this.
We want to hire this person to sustain
this part of open source.
You've used the term Apple. I use the
term Apple as we introduce the episode.
And there's at least one person
listening to this episode, Carl, that's
saying to themselves, what in the world
is [laughter] this Apple thing they're
talking about? So for somebody who isn't
familiar, explain it to me like I am
five. What is Apple? Sure. Apple is an
acronym for extra packages for
enterprise Linux. Um, sometimes I'll get
uh with my hick accent, people think I'm
saying Apple and they'll thinking
they're thinking of the uh the phone
company, but no. Uh, extra packages for
Enterprise Linux. The way the the
packaging ecosystem works and the
components of these distributions work.
Uh, Fedora is the parent distribution.
CentOS is based on Fedora and then Red
Hat Enterprise Linux the Red Hat product
is based on CentOS. um rail and cents
are very closely related. It's CentOS is
almost like the major version branch of
rail. So they're very tightly coupled.
Um but creating that product in the end
there's way more packages in Fedora than
Red Hat wants to support for their
customers for a long-term basis. Uh so
the way it works out is only about 10%
of Fedora package packages actually make
their way into CentOS and then into
Fedor into Rail. every everything else
that other 90% of packages they're not
they didn't make the cut because they're
bad software or not useful it's just
things that Red Hat didn't want to
commit to maintaining in the product but
all of those things Fedora makes it easy
to consume those things on CentOS and
Rail by rebuilding them from the Fedora
package to be compatible with CentOS and
Rail and that's what Apple is it's that
extra it's not all of that extra 90% all
at once automatically but that 90% is
the pool to that packagers can take and
build in the Apple repo and have
additional communitymaintained packages
that they can use with the enterprise
product or with the community edition
CentOS.
>> So as a former Linux systems admin uh I
I used to use Apple a lot there there
was some cool monitoring tools some
extra utilities things that weren't in
the base operating system whether that
was Cent Linux back in my time sent to
stream nowadays or Red Hat Enterprise
Linux or some of the offshoots. So, as a
CIS admin, I was used to installing
Apple just kind of as a default and
installing things like HTOP, which gave
you kind of a graphical u I guess a a
terminal based uh output of your system
resources. Uh but that's not how it
works with Fedora. So, how and and that
can trip people up. You go go on your
Fedora machine, you try and install
Apple and it it doesn't uh doesn't quite
work out. So, how how is Fedora and
Apple kind of different? Apple is a
subset of Fedora kind of like Redhead
Enterprise the whole enterprise Linux
package set is a subset of Fedora. So uh
we actually have a conflict in the what
we call Apple release the package you
used to enable the repository where it
shouldn't even install on Fedora if you
just pulled out the repo files and did
it manually to force it then it still
wouldn't make a diff it wouldn't really
make a difference because the packages
in Apple are already in Fedora. So
you're not gaining anything extra. Uh
it's a little bit of a pet peeve of mine
when I see people recommend to add Apple
to Fedora because I'm like why?
Everything's already there. You don't
need to. Also, it's not going to work
because like gibb is going to be
different and this library is going to
be different and this and that. So most
some of the uh the non-architecture
specific packages probably would install
and might work but it would be purely
accidental because those packages are
targeting a different operating system
entirely.
>> [snorts]
>> Can you tell me a little bit about uh
the this golden rule that I understand
that exists in Apple with regard to
replacing a package that's in the base
OS?
>> Yes. Uh it's kind of built into the
name, right? Extra packages. Uh the
golden rule, the guiding principle is
that um you know add having an add-on
repo for rail is not like a new concept.
you know, thirdparty repos have been a
thing on every distribution for a long
time. Um, what people have experienced
sometimes is that if you have a add-on
repository that replaces packages in
your operating system, that can cause
dependency problems or other issues
later on down the road or even right
there on the spot. Uh, so what Apple
wanted from the very beginning was we
are not going to replace any software in
real. We're only going to provide
additional software. So in theory, you
can always add this repo and do
everything you would that's, you know,
anything you would do with just rail by
itself will work exactly the same
because Apple shouldn't be interfering
with any of that. Um, that guiding
principle I think is why Apple has the
reputation it does. Like Eric mentioned
that he just would add it without even
thinking, not not even, you know, it was
just kind of automatic to have that
added. Apple has a really good
reputation for that because it is very
reliable by being only an additional set
of packages. Um, of course, you know,
like anything built by humans, mistakes
have been made in the past. And, you
know, we'll find if we find something
like that that somehow missed the
automatic checks to get into Apple,
usually it'll be more like it was in
Apple first and then re added it and
it's like, oh wait, we need to remove it
from Apple now so it doesn't conflict to
stick with our guiding principle. So,
it's not always 100% perfect, but that
is the what we strive for all the time.
[snorts]
>> So, you you mentioned a package
installation. And is that is that all it
takes to get started with Apple is just
install that uh that DNF package?
>> Yes, with the caveat we have one extra
step on our website which is uh since
real 8 there's a repository called code
ready builder. Um in theory that
repository was supposed to be just like
devil packages and other things that you
wouldn't need for like runtime for an
application. In practice, Apple packages
do often depend on packages from the
code ready builder repo or CRB. So, our
first step is you turn on that CRB repo,
which is available by default, but it's
just disabled by default. Um, you enable
that to make sure you have all the
available dependencies and then you
install the Apple release package.
That'll set up your system with the
repository configuration and the GPG key
and then you'll be able to install
packages. So, just a two-step process.
Technically, you could just install the
release package and I don't know,
threequarters of the stuff will install
just fine, but the rest of it might will
have dependency uh dependencies in the
CRB repo and then you'll have errors
that don't make sense until you realize
you missed a step.
>> Talk to me a little bit about the
dayto-day. How are decisions made? Who
governs? Who maintains? Who makes Apple
a re reality?
>> Sure. the the governing body for Apple
is the Apple Steering Committee uh which
I'm also a member of. That is
technically a uh not a subset uh
delegated authority from the Fedora
Engineering and Steering Committee,
Fesco. Um basically Fesco didn't want to
also have to govern all of the things
around Apple. So they created the Apple
Steering Committee just as a
subcommittee sort of things. Um
originally Apple steering committee was
appointed. It was just people that
basically the people that were around
creating Apple made themselves the
steering committee and then um over time
I think it was about two years ago we
actually implemented elections so that
way it's not just people that have been
sitting there and don't want to give up
their seat. It's actually uh we have
terms and you have to run for election
and get elected. And so we've had a I
don't want to say churn but we've had a
few new faces show up which is great.
It's always good to have new voices uh
get on the steering committee in the
last couple of years since we started
doing elections. um and also a lot of
people that have been been around doing
it for a long time. So, uh that is the
governing body. Um EP as a whole, who
controls EP and who does things in EP?
It's really any Fedora packager that
wants to participate. Um I'll get that
question sometimes where someone tells
me, hey, your job is EP. Can you go fix
this package or do this thing or add
this package? And I say, whoa, whoa,
whoa. I'm not a maintainer of that
package. I don't have any say over that.
Um, it's still very much like Fedora
itself in that individual maintainers
have a lot of autonomy over the packages
they're the maintainers of. Um, they're
not the owners of the package, but
they're the current steward of the
package. Uh, if they were to disappear
for whatever reason, get busy with life
or something, you know, hopefully not
worse happens, another maintainer can
pick it up. So they're still Fedora
packages, but the individual package
maintainers for the Apple packages have
the autonomy to decide which goes in
which Apple branch, what which versions
they're on to a large degree within the
updates policy. Uh and they they make
most of the things happen for Apple. The
steering committee is, you know, just
steering the ship. Any kind of
adjustments to the rules, usually
helping with the documentation and
policy, making sure that's clear for
maintainers, uh, looking at workflow
improvements, uh, looking at automation
improvements, things like that. Uh, keep
Apple moving in the right general
direction so that way the individual
packagers can just worry about their one
package and then the rest of the stuff
is right where they need it to be uh, to
get their job done.
>> That's so open source of you.
>> [laughter]
>> Um, so with with the steering committee,
I assume that on major policies and
decisions, changing of of scope, that
kind of thing, there is a voting
process. You want to walk us through
what that looks like?
>> Yes, we have a it's basic majority
voting. Um, most of our votes take place
during our weekly meeting, uh, which is
in it's on the Fedora calendar. It takes
place in Matrix, uh, the Fedora meeting
one channel if you're already in Matrix
and familiar with it. And uh most of the
things that come up for like proposal
we'll vote on during that meeting. Um we
do have a fast track similar to FESCO.
We have a fasttrack process where if
something's urgent uh we can kind of
ping all the steering committee members
and do a ticket vote to get it done
quicker. But generally we'll vote once a
week on anything any pending business.
>> Do you mind if I sidebar for just a
second and ask about the decision to go
with matrix? I feel like I have seen a
uh pattern that spans a number of
different companies, a number of
different organizations, and it seems
like they're all kind of landing on on a
shared platform. And the federation
aspect of that is interesting to me
because it means you, Carl, who is
working on Apple for Fedora, can talk to
somebody who's working at Canonicle or
else. Um, and so it's anytime I see
multiple different entities all doing
separate things but all sharing a
similar open source product, it gets me
curious how did that decision land and
from your perspective how has it been
converging on matrix?
>> Uh, like any change it hasn't been uh
completely smooth or without growing
pains. Um, I generally like matrix. I'm
rooting for for it to succeed overall in
other open source projects. Um, but that
doesn't mean I think it's perfect and it
doesn't mean I don't have complaints
about it. Um, I don't I won't get into
that too much. Like there's like
anything else, there's pros and cons.
Um, some people think that, you know, we
traded one set of problems with IRC for
another set of problems with Matrix, but
I do think it was overall an
improvement. uh you know not having to
run your own bouncer being a little bit
more approachable for people getting
started with the chat I think is a good
thing although there there is a s still
a significant I think that's probably my
biggest problem with matrix I said I
wouldn't get into it too much but the
the onboarding around it and getting the
key stuff set up uh I've helped several
new contributors get started with that
and it almost always trips them up and I
wish it was a little bit smoother so I'm
hoping that improves more in the future
uh like I said I am rooting for Matrix I
like it um but
Yeah, it I think it's a good thing like
you mentioned the the kind of the
federation aspect a little bit. Um where
because I'm on Fedora's matrix, anyone
else can get my Fedora Matrix handle and
they don't have to be on the Fedora
Matrix server. They can message me and
get a hold of me. Um and usually like in
my conference presentations, I'll say
that that's the I'll have my email up on
the screen, but also my Matrix handle
and I'll tell people you can email me,
but I'm not going to make any promises
uh about getting back to email. If you
send me a message on Matrix, I I
guarantee you I will reply eventually.
Um this is actually really great. So
with big change comes some problems and
you got to fight your way through. About
a year and a half ago you launched Apple
10 and as part of that um that was kind
of like a soft launch and we're now at a
place where um there are increased
packages. You cross that 10,000 package
mark. You're now past 25,000. Can you
talk to me a little bit hindsight being
2020? Um what has been really well?
Where do you think there's some
opportunities for growth?
And um from the original plan of how
CentOS and Rail systems would request
repo, where did it break down?
>> Yeah. Um so Appleton was a big ambitious
thing that uh you say the last year and
a half, which feels like it way
underells it to me because we were
planning it quite a bit before that. I
know that wasn't you weren't trying to
minimize it at all. It has it did launch
about a year and a half ago. Um but the
story actually goes back a bit further.
uh if you if you'll allow me to um
>> please.
>> So back before the Apple team got
started uh I mentioned I was on the
CentOS team and I knew the importance of
Apple coming from my background and
using it um and we were seeing that um
in the in the olden days when CentOS was
a rebuild CentOS Linux when it was a
rebuild of rail and about a month behind
rail apple packages would be built
against rail and generally used on both.
There would be small periods of time
that that month rebuild where
maintainers would often have a problem
where if a library changed in rail which
doesn't happen often but it does happen
they would have be faced between the
choice of they could rebuild the package
against the new library in rail and it
would break it was already broken for
rail users until they rebuilt it. So
they were like okay I I need to rebuild
it but it was not broken for CentOsh
users or any other rebuild users like
Scientific Linux and if they rebuilt it
against RA then they would break it for
those rebuild users. So there was no way
to solve both and maintainers did both
things. Some of them would wait until
Cynthos or another or their preferred
rebuild would catch up. Other
maintainers would rebuild it right away
so that rail it would work correctly on
rail and everyone else it was up to them
to get caught up. Uh, and it wasn't
really great and it everyone just kind
of looked the other way because it was
only about a month or so time frame
where that would happen and it didn't
happen that terribly often. Um, RE is a
bit different now than it used to be.
Back then, uh, library changes in RE
were more rare. Now they happen every
minor version. Uh, in real 8, they
introduced the concept Red Hat did of
rolling application streams. uh the
operating system is not rolling but you
have things like Golang and Rust that
are designated as basically no
compatibility guarantees and so every
every new minor version there of the
operating system there's a new a new
major version of those language runtimes
and a few libraries too like LLVM
that causes uh knock-on effects for
things that rebuild against it against
rail u build their packages against it
uh third party repos in particular
particular the operating system itself
they can make sure that that minor
version is all built together and
compliant all at one time and release
it. Um but as that was happening in real
8 we noticed that they we had launched
cent stream and that was now about six
months ahead of rail instead of a month
behind rail. So now now instead of it
being just a month gap of difference and
weirdness now we had this up to six
month gap where something would be
broken on CentOS until Rail caught up to
it and that made it the problem harder
to ignore. What I proposed at the time
was a kind of a bolted on solution for
Apple 8 called Apple Next and the idea
was that we would have an additional
repo that was built against CentOS
instead of RE. So that way maintainers
could build against those new libraries
earlier then not have to wait for them
to land in rail itself. And the idea was
that rail could just use Apple and
CentOS could use Apple and Apple next
together to get the base of Apple and
also a couple of package overrides that
needed to be overridden in a newer a
newer build. Um that was that was the
basic idea. It most it mostly worked. It
solved the problem. Um but some of the
key pro key key drawbacks to that
approach was that if a maintainer built
a package in Apple next that meant not
just building it then but they also had
to build it in EP six months later
because we didn't have any way because
of the bolted on nature we didn't have a
way to inherit builds between the two.
Um that made it a little bit little bit
confusing and difficult to work with.
the whole concept of uh an add-on repo
on top of an add-on repo confused some
maintainers and made it a little more
difficult to work with. Um so it was a
good first first try uh and it kind of
worked. Uh in Apple 9 we we kept the
same Apple next model but the key thing
that we did different there was we
launched Apple 9 about six months before
real 9. Um we wanted to give maintainers
more time to add their packages. At the
time, Apple 8 was lagging really far
behind Apple 7 as far as available
packages and we were getting a lot of
complaints about that. Um, that was
right at the right at the time whenever
we whenever my VP asked me to start the
Apple team inside Red Hat. Uh, because
basically there were a lot of customer
complaints about the lack of packages in
Apple 8. Um, it's no one person's
problem there or fault. There was a lot
of things that led to that. Um,
modularity was introduced in real 8.
that was a a complicated thing that made
a lot of things harder to get done. Um
there was also devil packages that
weren't shipped automatically. So we had
to work through some of those problems.
A lot of and then also the CentOS
changes. A lot of contributing factors
that made eight kind of a kind of a
cursed release in a lot of ways. I've
heard people make that joke that eight
is a number they should just skip like
with Windows 8 and RE 8.
>> Just cursed all around.
>> Yes. So getting back on track. Um
[laughter] we had we started the Apple
team. We were like okay what can we do
to improve and the first thing we did
was we started Apple 9 early. Um and
that gave maintainers more time to get
their packages added before the rail
rail 9 launch. Um after we got that up
and running we started looking at how
Apple next was working. And we decided
this isn't really great. We should
probably have do something different
here. And that was when I started
planning out um not just me uh I started
the idea and started working with the
other steering committee members about
how we could roll it out uh to actually
implement minor versions in Apple uh
which is the big change that I was
leading up to and alluded to for Apple
10. Uh, what we realized in hindsight
from Apple Next was that what we we
called it like an add-on repo on top of
the add-on repo, but really it was a way
to target two minor versions of rail at
the same time because when when changes
would show up in CentOS stream, that was
what was planned for the next real minor
version. So we would say be targeting
8.4 and 8.5 simultaneously. Um
>> once you shift the viewpoint to that,
not just targeting two oss, but two
minor versions of what really is the
same OS, then you realize how the the
minor versions we wanted to do in Apple
10 make a lot more sense.
>> Just building an Apple 10.0 that at
first works on CentOS and then works on
Rail 10.0 and then when the time comes,
start building an Apple 10.1 that
initially works on CentOS and then later
works on Rail 10.1. Um and that's where
we're at with Apple 10 right now. uh it
has been a very big success. It's the
most most ambitious thing and most
ambitious change that Apple has ever
done um introducing that. Interestingly,
I have seen older videos from Apple
steering committee members presenting at
conferences about how they could improve
Apple and several times doing minor
versions of the repo came up as ideas.
Uh at the time there was no Apple team.
Nobody had time to dedicate to it fully.
So even though people thought, "Yeah,
this could be a good idea," nobody had
the time and bandwidth to actually go
through and implement it. Um, so that's
what finally was different was my team
got started. By that point, it was me
and uh me and three uh two other
maintainers, so a team of three. We got
to actually spend our day focused on
making that a reality. Uh it involved
lots of changes across the
infrastructure and the build pipeline
and the tooling uh to get that working.
Um but we were able to get it done and
the general feedback has been it has
been a huge success. Um maintainers the
the Apple next problem of doing two
rebuilds for the same library change
doesn't exist anymore. You just build it
in the minor repo uh in the minor
version repo when that library changes
and then that gets carried forward
whenever it's used in the transition
from CentOS to rail it gets carried
forward and re used the same way from
the same build. Um, so yes, that means
that uh rail customers are using Apple
packages that were built against CentOS
and never built against Rail and it
works fine because they're really this
different minor versions of the same OS.
But I digress on that point.
>> So this has made it a lot easier for
maintainers to make sure that the right
versions of the right packages are in
the right repositories. Has this added
any sort of uh any sort of burden to the
end user? uh much like run uh upgrading
from 10.1 to 10.2 on re is is pretty
well seamless uh usually just involves
some package updates and a reboot uh is
is it just as transparent with uh with
with Apple.
>> So that ties into two parts of Noah's
question that I didn't actually finish
answering. There's a long it's like a
three-part question you gave me.
>> That's why there's two of us. Um,
[laughter]
so yes, uh, for users it, uh, for for
your regular user, we strive really hard
to keep the instructions the same. You
install the upper release package and
you're done. Um, of course, you also
have to enable the CRB repo first, but
those two steps are the same, and you
don't really have to think about it too
much. Um, we do still see users that
don't actually understand that Appleton
has minor versions, which I consider a
success because it has been a
transparent process for them. Um, the
caveat to that, some of the downsides,
uh, growing pains that Noah asked about,
um, where we've started to see some
cracks in it is people that mirror the
Apple repo for their own usage where
they, uh, not public mirrors that
everyone's pulling from, but like they
create a private mirror inside their
inside their own infrastructure. Um the
historical pattern has been you sync
from the pub apple major version number
path and the way we have it set up for
Apple 10. That major version path is
actually a sim link to the latest minor
version and the uh so 10 will be a sim
link to right now 10.3
and 10 is actually a sim link to 10
point uh sorry 10z is a sim link to 10.2
the one that rail uses. Uh the the
reason we have that Z name that actually
came about from one of the things that
kind of caught us off guard in the
implementation and the rollout was that
the original idea we had for Apple 10
was that the uh systems could just
request the minor version that they
were. So a a CentOS uh 10 system doesn't
actually have a minor version. So it
would just ask for Apple 10 and it would
get Apple 10 that's actually the latest
minor version. Uh, and then a rail
system that knows that it's 10.0 could
ask for 10.0 and get the right repo. Um,
and that all made sense to us in all the
implementation as we were going through
it and we were on track to do that. Um,
but then I forget exactly who brought it
up first, but it the we realized
eventually that that was going to cause
problems uh upgrading between minor
versions because when you start if
you're on rail 10.0 Z and you start your
upgrade transaction to go to 10.1,
you're still on 10.0 at the start of
that transaction, your system doesn't
know it's 10.1 until it gets that Red
Hat release package installed and
updated.
So with that, uh, if you have any
packages in Apple that were built
against 10.1, you're not going to see
those until the next transaction. Uh,
you could work around that, you know,
CIS admin style and just do DNF update
Red Hat release first and then DNF
update for the rest of the system. But
that two-part DNF update, there's no way
to encode that into DNF automatic for
automatic upgrades. So, we realized we
we sort of constructed this impossible
upgrade path that wasn't going to work
for a lot a large portion of our users
that rely on DNF automatic. Um
>> based on that that's when we kind of
pivoted a little bit and created that uh
what we call like the Z structure where
uh 10 by itself is just the bare name
that uh requests the latest repo but 10z
would request the repo that we have
configured for for re um and it's the
same it's we have sim links on the
mirror itself if you're using base urls
if you're using the default metal links
from the Apple release package uh we
have repo redirects in mirror manager
the software you use to control that um
so we pivoted and redesigned around
that, got it working and launched it
that way and it does work and it works
pretty well um until you're trying to go
in and explicitly mirror an exact URL
for use on your rail systems for a
private mirror. That is the scenario
that we we didn't give enough
consideration I guess or didn't think
fully through how that would work. Uh so
people users that are doing that that
haven't paid any attention at all to
what we were doing uh will go and sync
in Apple10 and then they get 10 point
like right now they're getting 10.3
packages there and then reporting bugs
that these Apple 103 packages don't
install on rail 10.2
um which is uh not not the user
experience we want to have. Um, now I
could just lean on, you know, oh, you
didn't go read the docs or you didn't
see that conference presentation I gave
about this or you didn't [laughter] see
that announcement on the mailing list
about this
>> RDM.
>> Yeah. [laughter]
>> Yeah.
>> I I've been doing I've been doing open
source enough now that I have uh I've
kind of come to the stage of grief of
just accepting that documentation
doesn't exist for people to read in
advance. It exists for you to point at
to say I told you you should have read
that ahead of time. [laughter]
>> [gasps]
>> So I do we do we do try to get the
docsuh improved from time to time
especially when stuff comes up. Uh but
it just feels like a never- ending thing
of like oh we didn't think about
describing this scenario or describing
this scenario. Uh so documentation is
always a work in progress. If
documentation is your passion please
reach out to me because I have ideas and
could use some help. Um [laughter]
there's never enough people that are
passionate about docs. Always a lot of
good ideas. Um I have lots of good ideas
and I'm terrible at writing. So if I
could combine forces with anyone that
likes writing documentation, I'd love
to. So yeah, the we're trying right now
for EP 11 leading up to that is we want
to figure out a way to solve that uh
solve that use case also and smooth
things out. Um the general idea is that
we're going to keep it as a transparent
process for people that install Apple
release. You just install Apple release,
you don't have to think about anything.
You just install it and go. But for the
for the infrastructure side invert the
um the additional character thing that
we did with the Z. Um so on for 10 what
we have set up is that if you're if you
have the DNF variable release for minor
defined you get a - Z appended on your
request and that's how you get the
repositories that correspond to rail. Uh
the name comes from the fact that inside
like rail products they actually call
the different minor versions zstreams.
Um You might see that if you if you any
of the satellite admins out there might
have seen like a like an 8.6 point Z
type naming in some of the products
channels. That's where that comes from
Zstream.
>> That's not immediately intuitive even if
you have run satellite that you need to
do the same thing for Apple. Um so we're
thinking about how we can if it would it
be better to flip that on its head and
if you don't have release ver minor
defined add additional characters. Um
the leading thing we're talking about
now is S corresponding to to CentOS
stream. Uh but we could also go with C
something else some other character
distinguish it. That way the default
Apple10 experience if you mirror that
down is going to be the repo compatible
with re and if you ask for or sorry 11
uh and if you if you ask for 11s then
you'll get the repo that's one minor
version ahead corresponding to CentOS.
Um it generally has good general
support. Most people think this is a
good idea. Uh the more maybe contentious
thing is one which variable we key off
of and two if we if we're doing it for
11 should we change 10 to match even
though 10 is already in production and
in use. It's very easy to say yes we'll
do it for 11 from the start because it h
it doesn't exist yet. We can just start
it that way. Sure.
>> Um,
>> but there's also a very uh very valid
perspective that it is painful for
maintainers and for tool owners if 10
and 11 are doing something different.
Rip the band-aid off. Get it get both 10
and 11 on the better better structured
system. Um, we're also somewhat limited
by what DNF can do with the variables. I
mentioned keen off of the release ver
minor uh, sorry. Yeah, release ver minor
variable. uh DNF has a way to say if the
variables defined insert additional
characters. It actually doesn't have a
way to do if the variables not defined
insert other characters. Um so we're
talking about is the right way to do
this approach the DNF team and ask for a
code change to support that logic or
alternatively what we could do is just
use the CentOS systems actually have the
stream variable defined uh for legacy
reasons but it's still there. we could
key off that variable being defined to
add the extra characters. Um, there are
some people that have mixed feelings
about that. Uh, one thing that we're
stuck on with that right now is using
that variable. Some of the rebuilds that
are out there, not all of them, actually
did define the stream variable. even
though they're not based on CentOS uh
based on CentOS stream, they define that
variable so they could consume content
from CentOS special interest groups
which are other thirdparty repos that
have different rules than Apple. Um so
right now if we keyed off that variable,
we would have rail rebuilds that want
the content that matches rail, but
they'd be getting directed to content
for CentOS that's a minor version ahead
and would cause some confusion and
mixups and problems. Um, I think
probably the most likely path forward is
those rebuilds treat that as a
compatibility issue because rail doesn't
define that. So, they should undefine it
and that'll make everything smoother
going forward, but it doesn't help
people that already have it. And so, now
we're talking about transition path and
then also l lends credence to the idea
that maybe we leave 10 alone and only do
this for 11 going forward.
>> Talk to me a little bit about 11. uh you
want to keep the minor version design as
the foundation but clean up the redirect
and assemblink later. What's kind of the
core idea um what can be cleaned up in
in 11.
So that was the the part that I was
talking about the uh it's mostly
infrastructure changes u maintainers
wouldn't from the package maintenance
side the workflow would be the same from
the the Apple release user side it'll be
the same they just install Apple release
and go we'll have that configured to do
what we want it to um it would almost
entirely be a change on the on the
infrastructure side both the the Apple
infrastructure itself that's part you
know shared Fedora infrastructure but
also people doing mirroring Apple into
their own infrastructure that use case
of the private mirror where they're
getting they're assuming what the URL
is, not reading any any documentation or
announcements and getting the wrong
content. Um, that's what that change
would look like.
>> Is it accurate to say that this is not
anything set in stone? This is more of
an opening set of ideas for discussion
and you're looking and welcoming
feedback and thoughts from the
community.
>> Absolutely. And that's why I'm here
today.
>> Honestly, that that this this this is
not one decision but two. the the two
decisions are how do we fix this in
Apple 11 and the second decision is
should we change Apple 10 to match and I
mean statistics have have shown that re
10.2 two is now active. It's it's been
out for a couple of months now at the
time of recording. So, people are just
now starting to adopt rail 10. So, I I I
think the the question is this sounds
like a good idea for Apple 11. Let's put
it to a vote. Let's let's decide. And
then then the follow-up uh decision is
do we make Apple 10 match now before uh
before a lot of uh a lot of rail users
start using the new and shiny thing as
as a as a marketer or as a solutions
architect or as a home laber. I I
immediately start adopting the newest
versions as soon as they're available
sometimes in beta. Uh but if if I'm
running big enterprise, not so much.
Letting letting Rail cook for a year uh
is is a really good idea. And with every
with six month releases, that puts us
right around 10.2. So
all all of this this this whole episode
was was conceived through the fact that
this this may not impact Fedora, but it
definitely affects downstream of Fedora
and how packages are taken from Fedora
and put into the enterprise Linux
stream. And so the question, oh hey, pun
intended, I guess. Uh but uh
>> and technically Apple is part of Fedora.
So
>> well, there you go. And uh so I actually
came across a Fedora discourse uh thread
that you started Carl. Um and that will
be in the show notes by the way. So
check the episode description uh for
that link. But uh you you actually put
out a request for feedback. You wanted
you wanted to get people's thoughts and
opinions and try and catch some of those
use cases. Uh to to date, what uh what
has been kind of the feedback? What has
been the sentiment in in that thread?
>> Overwhelmingly positive. I honestly
thought that there was going to be more
dissenters uh and more concerns around
it. Um nobody seems to be outright, at
least so far, the feedback that's been
shared, it's still open for discussion
um for a little while. Nobody's been
outright opposed to it. Several people
have said, "Yes, I I wanted it to be
like this all along. Uh why didn't you,
you know, have a crystal ball and set it
up this way from the start?"
>> [laughter]
>> Nobody said that literally, but that was
the that was the under
>> telling travel was kind of implied.
>> Yes, [laughter] the benefit of hindsight
is wonderful. Um,
>> well, if you would really like a
dententer, I could jump in that thread
and really just complain. [laughter]
>> All joking aside, if there's to tie back
to what you were saying about, you know,
to a degree our documentation is is
there. It's maybe not always perfect,
but it would be ideal if people read.
what should somebody be aware of or what
what resources should somebody
um navigate and consult before coming to
the table and saying I have an opinion.
I think I know what should be done.
>> Yeah. Taking a read over the initial uh
over the documentation we have so far.
Um the URL is kind of long and y'all can
put it in the show notes for the it's
docs.farpro.org
and then some stuff. Um, we actually
have a cool redirect set up. If you type
epel.io,
that'll redirect you to the Apple
documentation page. Um,
and in there, um, aside from this
proposal, what I want everyone to take
away from this is that, uh, the most
common question is, how do I get this?
This package is in Apple 9, but not
Apple 10. How do I get it there? Uh, we
have a how to request Apple packages
guide as the very first thing in our
table of contents. Um, so I highly
recommend people read that. Um, just in
general for for the Apple 10 stuff, uh,
under our guidelines and policies, we
have a branches page. Uh, and that has
that's our most complete, it's very
incomplete, but it's our most complete
so far documentation around uh, how
these Apple 10 things work and uh, the
different minor versions. Um, it's got a
good bit of content in there. It also on
the same page it has stuff describing
Apple 9 and Apple 8 which are much less
interesting because it's less complicate
complicated. It also has it touches on
Apple 9 next in there and how those
branches work. Uh it talks about which
which base each of those are built
against. And so that would be the the
best starting point to understand the
basics of this. Um, in that EP 11 thread
that y'all are going to link, there's a
few other reference links in the in the
very first post, things that I felt were
relevant. Um, I think I linked to the
original Apple 10 proposal and I linked
to the the issue where we figured out
how we needed to change up and pivot and
do the the ZSIM links to get that work
the upgrade path working.
>> Um, that part that discussion is in
there that would be useful to read
through. Um, and a lot of it is just,
you know, here's all these little weird
things that happened along the way and
how we got here now. Uh, read those
first and you can have the same benefit
of hindsight that I wish I had, you
know, two years ago. That's awesome. Uh,
and and this is a great opportunity to
jump in if you're newer to Fedora and
see how the process works. The Apple
Steering Committee is one of the most
wellestablished groups within Fedora uh,
as far as making decisions that not only
impact Fedora but impact the entire open
source community. Could you talk a
little bit specifically within Fedora
where is a good place to to say hey I
want to dip my toes in where's the best
place for me to get started es part
particularly actually you might be the
best guy to answer this if my goal is to
wind up on the enterprise side
>> right um so because so Fedora is a very
broad project there's a lot of ways
people can get involved and things I can
do uh there's a really cool website
called uh what can I do for fedora.org
or um it was inspired by another open
source project that had something
similar where you go there and you kind
of can shuffle through different
suggestions about ways to get involved.
Then it'll link you to like uh different
SIG onboarding paths and things like
that like I'm interested in Python
programming or I'm interested in
documentation or I'm interested in RPM
packaging. Um that is it's a really
useful website. I see Eric's face. I
think he just pulled it up and he's
going through
>> I didve I've never seen this thing.
[laughter]
Okay, that's going in the show.
>> Well, and it literally walks you through
is like, do you want to do pixels? No.
Okay, the next thing. Do you want to
hack the Gibson? I This is great. This
is whoever thought of this. Brilliant.
It's a million dollar idea right here.
>> I believe it was Ralph Bean. And I'm
sorry if I I'm not giving credit to
someone else that was that came up with
it, but I think he he was at least
involved in that. And I think he it was
his initial idea, but yes, it's some of
it's a little dated. About a little
while back, I sent a pull request. I
mentioned modularity earlier. There was
still modularity in there. And I saw it
one day when I was showing it to a new
user and I was like, "Oh, that's wrong.
That's go that's already retired in
Fedora and it's not in real 10 at all.
So, uh, yeah, we shouldn't be pointing
people to modularity anymore." So, I
sent a pull request to the to the
website to take that down. Um, the whole
thing could probably use a little bit of
a a content refresh, but it's still
broadly applicable. Um, a few other
deadends I might mention. Uh some of it
will depend on some of the
responsiveness you might get out of that
will depend on the individual group you
get directed to. Uh I have I have seen
that before where a new contributor
tries to get started they follow the
instructions from that website and they
end up with a with a special photo
special interest group that is less
active for not casting any shape but it
just happens sometimes with life and
jobs and everything like that. Uh, and
if they don't get a response right away,
they say, "Oh, this this SIG must be
dead and I this website's terrible
because it pointed me in a to a dead
end." And I'll point out like, "Oh,
yeah, you know, that person's doing
this, and oh, let me reach out to this
person directly. They might have missed
your ping." And, uh, Fedor is a
community at the end of the day. It's a
group of people. Um, we're never going
to have everything be perfectly smooth,
but the solution generally is talking to
people and figuring something out. So
>> the next time you see
>> groups maintain making their keeping
their own documentation up to date for
how to get involved with that special
interest group is the way that that gets
improved collectively. I think
>> for sure
>> you tell Ralph the next time you see
him. Noah wants to give you an
uncomfortable manhug for that idea.
[laughter]
>> Awesome.
>> He might be a listener. He he uh he
still uses Fedora as far as I know. So
>> nice. So, I I've I've picked this up
from from another podcast that I follow.
Uh I stole it and uh you know, I'm I'm
going to continue to steal it for for
both this show and for the IT guy show,
but was was there anything about Apple
that we didn't cover today? Uh this was
kind of a crash course and kind of a
current events look at look at Apple and
how it relates to the Fedora community.
Was there anything that you feel we
should touch on before we wrap up today?
>> Sure. Couple of alibis. Uh, one thing
that I didn't I didn't get into too much
that I'm surprised I didn't was that um
by the nature of the pro project um
Apple is very packaging focused. Um, a
lot of the contributions to Apple are
going to be package m RPM package
maintenance. That's less true for
Fedora. There's still a lot of package
maintenance that happens in Fedora, but
you can you can walk into Fedora and
say, I want to fundamentally change, you
know, the design of this or or work on
literal design assets for this, things
like that. There's a lot more aspects
and avenues for contribution to Fedora
as a whole because it is a completely
community controlled uh project. With
Apple being an add-on repo to an
enterprise product, there's a lot a lot
of things that are out of our control.
Like you may approach Apple and say, "I
think it's wrong that re does this and
this and this." And we're going to say,
"Cool. That's a product decision. That's
those guys over there." Like some of us
may get a paycheck from Red Hat to work
on this, but that doesn't mean we have
authority over that product over there
in a whole different segment of the
business.
>> So, EPA in a way, it's keep in mind that
it is very much an add-on to that
product. And so, there are things that
are just out of our control that we just
have to adjust for. And that is the
reality. Um if that's not appealing for
you, um something that you know a
distribute a distribution that is
entirely community controlled uh like
Debian might be more appealing where
Debian has control over everything in
Debian. There's no company that has can
make product decisions to make parts of
Debbian different things. Uh whereas
Apple, we are very much living uh it's
you know it's Red Hat show and Apple is
just being a useful add-on for that. So
that is useful context for how that
works. That naturally means most of the
contributions for Apple are going to be
RPM packaging work to add on additional
packages. Apple doesn't really do much
else. Fedora does a lot more than just
packages. Apple not so much. It's pretty
much just packages.
>> Yeah. And that's that's kind of the the
key differentiator there to to save Carl
getting a lot of hate mail was what what
what Carl was talking about relates
specifically to Apple, those enterprise
decisions. Uh whereas Fedora is much
broader. uh while while Fedora and uh re
sent to us there in in between tend to
make decisions that uh you know one one
decision impacts the other three usually
positively but there are times uh like
butterfs where Fedora as a community as
a project has said this is something
we're going to do and Red Hat says yeah
that's awesome keep doing that your
community distribution but for our
customers we think XFS would be a better
file system so I I just wanted to
differentiate the fact that while is
very very much enterprisedriven. Fedora
is is much more uh aligned with with
kind of a Debian model where um where we
have key stakeholders like Red Hat, but
Fedora is broadly a communitydriven
project. Um so I wanted to save you a
little bit of hate mail there, Carl.
[laughter]
>> Followup. Uh so the RPM packaging aspect
and the control aspect. Yeah. Um, if
anyone is specifically interested in the
RPM packaging, they might be a good fit
to get more involved in Apple. Um,
Fedora has great documentation on
becoming a an RPM packager. And then
from there, once you're a Fedora RPM
packager, Eple is just more branches.
So, we have what we call discit, which
is the package sources, and instead of
like a main or master branch, we have
the rawhide branch corresponding to
Fedora rawhide. And then from there, we
create like our F44 and F43 branches.
Apple 10's just another branch from
that. Apple 9 is just another branch
from that. Um, and for the for the minor
version stuff we're doing, we have Apple
10 and then from Apple 10, we create
Apple 10.2, Apple 10.3 and so on. Uh, so
it's all branches within the Fedora
Fedora system. Uh, that's why the Fedora
is the the best place to start with
that. Specifically around the RPM
packaging though, I will ask you'all to
put a link in the show notes to an RPM
packaging guide uh that I I didn't start
it, but I've been maintaining it for the
last few years. and uh adding lessons to
it and things like that. It's a good
sometimes I give it as a live workshop
at conferences. If you ever see me on
the schedule, uh you might see an RPM
packaging workshop at one of your uh
future conferences you're attending. Uh
if you're interested, come on by.
>> Which I'm so glad you mentioned the
contributor's guide because of all
Fedora's documentation, that is one of
the best. Uh, which speaking of Noah, I
feel like that's a great segue because
here in two weeks, our next episode,
we're actually going to be talking about
how do you actually get involved with
Fedora. So, if you're a longtime
contributor, a long time listener,
right? If if you're a longtime
contributor, a longtime listener, uh,
definitely grab that that that episode
link when it comes out because, uh,
we'll be talking about the matrix group.
We'll be talking about some of the
different documentation, some of the
different teams, some of the ways you
get involved uh, like the joint sig. So,
uh, thank you Carl for that beautiful
segue. But, uh, yeah, so in in two
weeks, make sure to tune in to this
podcast because we will definitely be
talking about ways to get involved in
the Fedora community, uh, and the Fedora
project as a whole. Um, you mentioned
conferences. Carl won that that part
about getting involved. Um,
I cannot stress enough how important
that is. If you like Fedora, if you like
Apple, if you like any open source
project distributions or repos or
software or anything, uh there's nothing
more important that more impactful than
you can do than getting involved.
Whether that's spreading the word about
it, whether that's reporting bugs,
whether that's triaging bugs, whether
it's resolving bugs or adding features
or redesigning the structure of
something, getting involved is so
critical for the health of open source.
Uh many many projects struggle with how
do we keep our keep our longtime
contributors and how do we get new
contributors. Um generally just with no
other changes the longtime contributors
that falls down over time and decreases
because people people retire people die
people get new jobs where they can't
spend as much time on open source. Um so
without any new blood the longtime
contributor base shrinks just naturally.
We have to replenish that. And the only
way we do that is by getting new people
involved. If you think you're not good
enough or not smart enough, you're
wrong. I don't want to come here and
tell people they're wrong, but you are.
You are good enough. I had a uh I had a
very, very, very smart friend of mine,
someone I consider a mentor, tell me
recently that they weren't smart enough
to do uh Fedora packaging. And I wanted
to reach through the camera and strangle
them because I was like, you absolutely
can.
>> Yeah, lovingly. [laughter]
I don't want to call him out. I'll tell
tell y'all afterwards and y'all are
going to be like, "What? He said that?"
[laughter]
>> That guy.
>> Um, do we do we need to get security in
here? He's he's threatening the audience
here.
>> No, he's not. He's He's trying to tell
people that it's not as hard as you
think it is and that you're smarter than
you think you are and that
[clears throat] it's a community
project. There's a whole bunch of people
willing to come alongside you and
willing to help you out. Is that an
accurate summation of what you're trying
to say, George? Carl,
>> absolutely.
>> Awesome, Carl. Well, thank you so much
for agreeing to jump in here and for for
educating our audience a little bit
about Apple and uh and some of the
changes that could be coming to the
Apple program in the in the coming
months.
>> Thanks for giving me the chance to
highlight the uh the Apple 11 thread.
>> That brings us to the end of episode 57.
Make sure to check out the show notes
and stay connected with the Fedora
community. On behalf of Carl George, our
guest, Eric Hendrickx, my co-host, and
the entire Fedora community, thanks for
joining us. We'll see you next time.