[Nix-dev] Overriding xorgserver in nixpkgs

T White white.tw.tw at gmail.com
Tue Jan 12 04:18:25 CET 2016


Hi Vladimir,
thanks for the reply. xserver 1.18 has lots of good fixes and the AMD
driver is the only one which does not support it. All the rest including
Nvidia do. I don't think anyone else should have to wait for the upgrade
just because AMD do not make enough effort to track upstream ABI changes. I
am perfectly happy doing a rebuild of lots of packages if it means the
driver runs for me in the interim.

Using a modified xorg/default.nix as xorg/xserver.1.17.nix is the approach
I am using now and tried out yesterday (as you mention.) It works but it
does not provide me with the ability to switch between versions of the
xserver in configuration.nix. Do you have any suggestions on how I could
patch the declaration of the xorg package (all-packages.nix) to swap
between the two either conditionally depending upon
whether services.xserver.videoDrivers contains [ "ati_unfree" ] or using a
config switch in configuration.nix?

I wanted to avoid packageOverrides because it is expensive and also does
not work as expected when applied to the xorg package. There is already an
xorgsever override in xorg/overrides.nix and it has loads of darwin related
stuff. It appears to build in a different way to the default.

What I think I am looking for then, is a switch in configuration.nix which
allows the xorg package described in all-packages.nix to use
xorg/xserver.1.17.nix if true and xorg/default.nix if unset (by default.)
I tried a few times yesterday and managed to smash the tree which meant
that nix had to bootstrap the system again before rebuilding a new
generation. So my understanding is not yet strong enough where I understand
how to follow the recursions properly or determine how some declarations
evaluate or do not. I am still learning but it is fun!

Thanks for your help!
Tony


On 11 January 2016 at 17:07, Vladimír Čunát <vcunat at gmail.com> wrote:

> Hello.
>
> First, we downgraded back to xorg-server-1.17.* in b52f2f640 because of
> compatibility issues. There's probably no strong enough reason to have
> 1.18 as the default before the binary drivers supports it.
>
> On 01/10/2016 11:28 PM, T White wrote:
> > Because /nixpkgs/pkgs/servers/x11/xorg/default.nix is a generated file I
> > should not be editing that file and I should be doing an overrride
> > instead. Accept I have attempted multiple times now to overrride the
> > pkgs.xorg.xorgserver attributes and I just can't seem to get it right.
> > My current non-working attempt involved patching replacements.nix in the
> > xorg folder to contain :
>
> Do not use replacements.nix, as it's ancient. I even removed it recently
> b559020e. If you're modifying the nixpkgs tree, you can well have a
> modified xorg/default.nix. Nowadays not all items in there are actually
> generated - a few can't be but they're still there. Or, instead of
> replacements.nix you can edit the file xorg/overrides.nix which is
> strictly more powerful anyway.
>
> (If you do this, you need no additional packageOverrides etc. That's for
> changing stuff *without* modifying the nixpkgs tree itself.)
>
> --Vladimir
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20160112/405820d3/attachment-0001.html 


More information about the nix-dev mailing list