Red Hat Bugzilla – Bug 191739
xorg shouldn't require perl at runtime
Last modified: 2013-03-05 22:45:34 EST
Description of problem:
There is no good reason perl needs to be pulled in as a run-time requirement for
the X.org server, but apparently it is
$ rpm -q --requires xorg-x11-server-Xorg |grep perl
We really would like to avoid this for OLPC
Version-Release number of selected component (if applicable):
$ rpm -q xorg-x11-server-Xorg
The X server internally invokes perl for getconfig.pl for it's built in
autoconfiguration written for XFree86 originally by David Dawes. Removing
the perl dependency will require rearchitecting the X server, which is
something that will probably happen at some point in the near future, but
not likely in time for OLPC use.
To be honest though, I'd be surprised if you can install Fedora _without_
having perl installed. It is relied upon by a lot of software, so removing
all deps on it, IMHO is rather fruitless.
> The X server internally invokes perl for getconfig.pl for it's built in
> autoconfiguration written for XFree86 originally by David Dawes. Removing
> the perl dependency will require rearchitecting the X server, which is
> something that will probably happen at some point in the near future, but
> not likely in time for OLPC use.
It has come to my attention that this feature is not used at all in Fedora. Is
that correct? Question: /usr/bin/Xorg will still run even if /usr/bin/perl is
not available, yes?
> To be honest though, I'd be surprised if you can install Fedora _without_
> having perl installed. It is relied upon by a lot of software, so removing
> all deps on it, IMHO is rather fruitless.
Disagree. If we want Fedora to be successful beyond Fedora Core (and some people
do), Fedora needs to be an easy toolkit for derived distributions like e.g. OLPC
so I frankly don't give much for your attitude that it's "rather fruitless". The
fact remains: Perl, as it's packaged today in Fedora Core, is about 30MB of disk
space and it's completely unacceptable that it is pulled in by the X.org
package. This needs to be fixed.
Right now we're wasting a huge amount of disk with perl, just because it's a
dependency of the X server. I would love to see this dependency broken. After
all, we're not installing Fedora, we're installing OLPC so the Fedora assertion
is a bit off base.
We're OK with forking packages, but the X server is one of the packages I loathe
forking. David's question still stands: will X run without a config file and
without perl being around?
> will X run without a config file and without perl being around?
Investigation shows that the X server will run just fine without perl given it
has a config file. In fact many people routinely do 'rpm -e perl' as the first
thing when they install. For Fedora, you'll have perl anyways (since Fedora
installs a huge boatload of packages) so I don't see how this is breaking anything.
Right now, in OLPC, we're down to this
# rpm -e perl
error: Failed dependencies:
/usr/bin/perl is needed by (installed) xorg-x11-font-utils-1.0.2-2.i386
/usr/bin/perl is needed by (installed)
and that's what needs fixing so OLPC or other projects building on top of Fedora
as derived distros don't need to jump through hoops. Having X.org requiring perl
is just bad packaging IMO. I'd like to use this opportunity to once again point
to the link in comment 1.
(Coincidentally, I was doing 'rpm -e --nodeps perl' and my OLPC system still
works like a charm.)
So what's the good word here?
There are 2 things that use perl:
- X server via getconfig.pl
- X rpm scripts for various packages, for stream processing config and other
files inline to massage during upgrades, etc.
I beleive ajax or krh commented in IRC that the first problem is resolveable,
however I have not investigated it personally. I would assume that they are
For the rpm scripts, they'll have to be rewritten carefully to use sed
and/or awk instead of perl. My original choice of using perl was because
perl was used both at build time and runtime by the X server already, and
it seemed impossible to install Fedora Core or RHEL even in minimal
case scenarios without /something/ using perl in the system. In other
words, perl was more or less guaranteed to be available in our primary
OS's all the time, and many other things use it already, so it was considered
acceptable to write quick working perl solutions instead of uglier solutions
without it. Now that we have a good reason for not using perl, these will
I had hoped to be able to use "sed -i" which would make the changes more
painless, but feared that couldn't be done due to OS upgrade promises to
RHEL customers and/or Fedora users. I have since investigated this, and
GSS engineers tell me that we officially only support RHEL OS upgrades
from one release to the next OS release. Therefore, the RHEL 2.1 -> 5
upgrade scenario is not something our scripts need to be concerned with.
Nor 3 -> 5. Since I know RHEL4's sed, and I think RHEL3's as well both
support the -i option, it shouldn't be too much effort to convert all of
the X rpm scripts.
Ajax/krh: Any comments to share about getconfig.pl?
If I get the pci-id-based driver loading done, getconfig.pl will be totally
superfluous. Even if I don't, I can hardcode the rules it embodies _very_ cheaply.
fixed in 1.1.1-2.fc6.