diff --git a/nixos/doc/manual/release-notes/rl-1609.xml b/nixos/doc/manual/release-notes/rl-1609.xml index b08688a6695..be175a54c23 100644 --- a/nixos/doc/manual/release-notes/rl-1609.xml +++ b/nixos/doc/manual/release-notes/rl-1609.xml @@ -16,6 +16,10 @@ has the following highlights: See for documentation. + + Xorg-server-1.18.*. If you choose "ati_unfree" driver, + 1.17.* is still used due to ABI incompatibility. + The following new services were added since the last release: diff --git a/nixos/modules/hardware/video/ati.nix b/nixos/modules/hardware/video/ati.nix index 033e49d2233..bf91bcf0776 100644 --- a/nixos/modules/hardware/video/ati.nix +++ b/nixos/modules/hardware/video/ati.nix @@ -18,6 +18,8 @@ in config = mkIf enabled { + nixpkgs.config.xorg.fglrxCompat = true; + services.xserver.drivers = singleton { name = "fglrx"; modules = [ ati_x11 ]; libPath = [ "${ati_x11}/lib" ]; }; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 82d3e31e2a0..35816c3a16d 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -463,7 +463,14 @@ in { source = "${cfg.xkbDir}"; target = "X11/xkb"; } - ]); + ]) + # Needed since 1.18; see https://bugs.freedesktop.org/show_bug.cgi?id=89023#c5 + ++ (let cfgPath = "/X11/xorg.conf.d/10-evdev.conf"; in + [{ + source = xorg.xf86inputevdev.out + "/share" + cfgPath; + target = cfgPath; + }] + ); environment.systemPackages = [ xorg.xorgserver.out @@ -479,6 +486,7 @@ in xorg.xauth pkgs.xterm pkgs.xdg_utils + xorg.xf86inputevdev.out # get evdev.4 man page ] ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh; @@ -538,7 +546,7 @@ in services.xserver.modules = concatLists (catAttrs "modules" cfg.drivers) ++ [ xorg.xorgserver.out - xorg.xf86inputevdev + xorg.xf86inputevdev.out ]; services.xserver.xkbDir = mkDefault "${pkgs.xkeyboard_config}/etc/X11/xkb"; diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix b/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix index e3d9176b816..ca09e15bc44 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix +++ b/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix @@ -36,7 +36,7 @@ plasmaPackage rec { ]; NIX_CFLAGS_COMPILE = [ "-I${xorgserver.dev}/include/xorg" ]; cmakeFlags = [ - "-DEvdev_INCLUDE_DIRS=${xf86inputevdev}/include/xorg" + "-DEvdev_INCLUDE_DIRS=${xf86inputevdev.dev}/include/xorg" "-DSynaptics_INCLUDE_DIRS=${xf86inputsynaptics}/include/xorg" ]; postInstall = '' diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 16fa2423a11..32303dac386 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -2339,11 +2339,11 @@ let }) // {inherit ;}; xorgserver = (mkDerivation "xorgserver" { - name = "xorg-server-1.17.4"; + name = "xorg-server-1.18.3"; builder = ./builder.sh; src = fetchurl { - url = mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2; - sha256 = "0mv4ilpqi5hpg182mzqn766frhi6rw48aba3xfbaj4m82v0lajqc"; + url = mirror://xorg/individual/xserver/xorg-server-1.18.3.tar.bz2; + sha256 = "1ka206v4nbw6qz072gh0543aq44azq2zv9f0yysy5nvwa4i9qwza"; }; buildInputs = [pkgconfig dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ]; meta.platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index 74d95259163..99964bd77c3 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -286,6 +286,7 @@ in }; xf86inputevdev = attrs: attrs // { + outputs = [ "dev" "out" ]; # to get rid of xorgserver.dev; man is tiny preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c"; installFlags = "sdkdir=\${out}/include/xorg"; buildInputs = attrs.buildInputs ++ [ args.mtdev args.libevdev ]; @@ -364,7 +365,22 @@ in ''; }; - xorgserver = with xorg; attrs: attrs // + xorgserver = with xorg; attrs_passed: + # exchange attrs if fglrxCompat is set + let + attrs = if !args.fglrxCompat then attrs_passed else + with args; { + name = "xorg-server-1.17.4"; + builder = ./builder.sh; + src = fetchurl { + url = mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2; + sha256 = "0mv4ilpqi5hpg182mzqn766frhi6rw48aba3xfbaj4m82v0lajqc"; + }; + buildInputs = [pkgconfig dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ]; + meta.platforms = stdenv.lib.platforms.unix; + }; + + in attrs // (let version = (builtins.parseDrvName attrs.name).version; commonBuildInputs = attrs.buildInputs ++ [ xtrans ]; diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list index 2ebf31918b8..06a1699017f 100644 --- a/pkgs/servers/x11/xorg/tarballs-7.7.list +++ b/pkgs/servers/x11/xorg/tarballs-7.7.list @@ -183,7 +183,7 @@ mirror://xorg/individual/app/xlsfonts-1.0.5.tar.bz2 mirror://xorg/individual/app/xmag-1.0.6.tar.bz2 mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2 mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2 -mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2 +mirror://xorg/individual/xserver/xorg-server-1.18.3.tar.bz2 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2 mirror://xorg/individual/app/xprop-1.2.2.tar.bz2 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 195dc363dbc..978148c4e55 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10329,6 +10329,7 @@ in mesa = mesa_noglu; udev = if stdenv.isLinux then udev else null; libdrm = if stdenv.isLinux then libdrm else null; + fglrxCompat = config.xorg.fglrxCompat or false; # `config` because we have no `xorg.override` } // { inherit xlibsWrapper; } ); xwayland = callPackage ../servers/x11/xorg/xwayland.nix { };