I need to rebuild Xorg server from master in order to get the TearFree option of the modesetting driver that was committed recently.
The package that I need to rebuild is
xorg-x11-server-1.20.14-12.fc37.src.rpm, but from
master, that is:
❯ git describe --long --tags
I was following this article up until the patching step. Since I don’t need to patch anything, but simply update the git revision, there should be an easier way. Also, looking at the
.spec file, I see that it can fetch new version with
make_git_snapshot.sh, or something.
Ultimately, can somebody point out what I need to do to rebuild this RPM from master revision? Do I try hardcoding the versions in the
.spec file and then run
I progressed a bit, to the patches which do not apply. And then I realized that the package is not even using meson. And the upstream has dropped autotools. Great.
The usual workflow is:
git clone <clone URL from src.fp.o for package>
# edit spec
fedpkg mockbuild # preferred to fedpkg local because mock will create a new environment and install all required deps, which will not be done for fedpkg local
The spec still uses autotools, so yeh, you’ll need to backport patches to apply cleanly on the version that’s being used there. I’m sure it’ll be updated to the upstream version at some point since the Fedora maintainers work closely with upstream. It’s hard to say when, though.
From what I understood from pull requests to
xorg-x11-server, the maintainer does not want to upgrade the version due to Xorg not making a release, just tagging one. So the Xserver in Fedora is actually very out-of-date right now. I have filed a bug so that we can at least get meson-based build.
Anyway, I was able to build it normally and installed the files with
/usr/local prefix, but I wasn’t able to use the server properly. It was constantly complaining about permissions: not being able to write to log, not being able to copy the log to backup etc. I tried all the Linux tricks I know, g+s’ed the hell out of it, compared all the permissions on the original Xserver binaries from the package manager, changed the paths for display managers, tried just startx without a display manager, etc. There was constantly some kind of an issue. I even put SELinux into permissive state. Honestly, I’m out of ideas.
Most importantly, I wasn’t able to find any article on the internet with people running customly built Xorg.
The only thing that’s left to try (and which I didn’t because it can cause various side-effects, considering the version I’m building is way fresher than what Fedora is tested against) is to set the prefix to /usr, perhaps for the life of me Xorg just doesn’t want to work from another prefix. Otherwise I cannot imagine what other magic the spec version may do that I didn’t.