From 6bd877d2fd4f051b7ec5836009e6ec03796828ab Mon Sep 17 00:00:00 2001 From: quantenzitrone Date: Thu, 27 Nov 2025 03:58:20 +0100 Subject: [PATCH 1/3] xdm: refactor & move to pkgs/by-name from xorg namespace relevant changes: - use gitlab source instead of release tarball --- pkgs/by-name/xd/xdm/package.nix | 86 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 62 +------------ .../x11/xorg/generate-expr-from-tarballs.pl | 2 + pkgs/servers/x11/xorg/overrides.nix | 19 ---- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 90 insertions(+), 80 deletions(-) create mode 100644 pkgs/by-name/xd/xdm/package.nix diff --git a/pkgs/by-name/xd/xdm/package.nix b/pkgs/by-name/xd/xdm/package.nix new file mode 100644 index 000000000000..8d00553a43c4 --- /dev/null +++ b/pkgs/by-name/xd/xdm/package.nix @@ -0,0 +1,86 @@ +{ + lib, + stdenv, + fetchFromGitLab, + pkg-config, + util-macros, + autoreconfHook, + wrapWithXFileSearchPathHook, + libx11, + libxau, + libxaw, + libxcrypt, + libxdmcp, + libxext, + libxft, + libxinerama, + libxmu, + libxpm, + libxrender, + libxt, + nix-update-script, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "xdm"; + version = "1.1.17"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "xorg"; + repo = "app/xdm"; + tag = "xdm-${finalAttrs.version}"; + hash = "sha256-PhMctvL+Vp9uNmTtowMHzkoekieVCgNZCfUZ1XpjpyY="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + pkg-config + util-macros + autoreconfHook + wrapWithXFileSearchPathHook + ]; + + buildInputs = [ + libx11 + libxau + libxaw + libxcrypt + libxdmcp + libxext + libxft + libxinerama + libxmu + libxpm + libxrender + libxt + ]; + + configureFlags = [ + "ac_cv_path_RAWCPP=${stdenv.cc.targetPrefix}cpp" + ] + # checking for /dev/urandom... configure: error: cannot check for file existence when cross compiling + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_file__dev_urandom=true" + "ac_cv_file__dev_random=true" + ]; + + installFlags = [ "appdefaultdir=$(out)/share/X11/app-defaults" ]; + + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=xdm-(.*)" ]; }; + + meta = { + description = "X Display Manager with support for XDMCP, host chooser"; + homepage = "https://gitlab.freedesktop.org/xorg/app/xdm"; + license = with lib.licenses; [ + mit + mitOpenGroup + x11 + bsd3ClauseTso + bsd2 + ]; + mainProgram = "xdm"; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index ff479dcb0adb..535fdf04308a 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -121,6 +121,7 @@ xconsole, xcursorgen, xcursor-themes, + xdm, xdriinfo, xev, xeyes, @@ -196,6 +197,7 @@ self: with self; { xcompmgr xconsole xcursorgen + xdm xdriinfo xev xeyes @@ -406,66 +408,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - xdm = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libX11, - libXau, - libXaw, - libXdmcp, - libXext, - libXft, - libXinerama, - libXmu, - libXpm, - xorgproto, - libXrender, - libXt, - wrapWithXFileSearchPathHook, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "xdm"; - version = "1.1.17"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xdm-1.1.17.tar.xz"; - sha256 = "0spbxjxxrnfxf8gqncd7bry3z7dvr74ba987cx9iq0qsj7qax54l"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - wrapWithXFileSearchPathHook - ]; - buildInputs = [ - libX11 - libXau - libXaw - libXdmcp - libXext - libXft - libXinerama - libXmu - libXpm - xorgproto - libXrender - libXt - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! xdpyinfo = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 070ce5d76e3f..c0f6faebd7f8 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -452,6 +452,7 @@ print OUT < Date: Sat, 22 Nov 2025 21:30:14 +0100 Subject: [PATCH 2/3] xdpyinfo: refactor & move to pkgs/by-name from xorg namespace relevant changes: - use gitlab source instead of xorg release tarballs -> builds with meson - remove and add some dependencies according to the upstream meson.build - remove malloc0returnsnull and NIX_CFLAGS_LINK hacks, as it didn't seem to do anything. (I build it both cross and static and the output of `xdpyinfo -ext all` doesn't change.) --- pkgs/by-name/xd/xdpyinfo/package.nix | 75 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 60 +-------------- .../x11/xorg/generate-expr-from-tarballs.pl | 2 + pkgs/servers/x11/xorg/overrides.nix | 17 ----- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 79 insertions(+), 76 deletions(-) create mode 100644 pkgs/by-name/xd/xdpyinfo/package.nix diff --git a/pkgs/by-name/xd/xdpyinfo/package.nix b/pkgs/by-name/xd/xdpyinfo/package.nix new file mode 100644 index 000000000000..fab1d39b6e19 --- /dev/null +++ b/pkgs/by-name/xd/xdpyinfo/package.nix @@ -0,0 +1,75 @@ +{ + lib, + stdenv, + fetchFromGitLab, + meson, + pkg-config, + ninja, + libx11, + libxcb, + libxext, + libxi, + libxtst, + libxcomposite, + libxinerama, + libxpresent, + libxrandr, + libxrender, + libxxf86dga, + libxxf86vm, + nix-update-script, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "xdpyinfo"; + version = "1.4.0"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "xorg"; + repo = "app/xdpyinfo"; + tag = "xdpyinfo-${finalAttrs.version}"; + hash = "sha256-zN2ViUJhrndqyLFCzcUi2DRg2K2q9eJXzHlUsMNmhNg="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + meson + pkg-config + ninja + ]; + + buildInputs = [ + libx11 + libxcb + libxext + libxi + libxtst + # optional deps + libxcomposite + libxinerama + libxpresent + libxrandr + libxrender + libxxf86dga + libxxf86vm + ]; + + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=xdpyinfo-(.*)" ]; }; + + meta = { + description = "display information utility for X"; + longDescription = '' + xdpyinfo is a utility for displaying information about an X server. + It is used to examine the capabilities of a server, the predefined + values for various parameters used in communicating between clients + and the server, and the different types of screens, visuals, and X11 + protocol extensions that are available. + ''; + homepage = "https://gitlab.freedesktop.org/xorg/app/xdpyinfo"; + license = lib.licenses.mitOpenGroup; + mainProgram = "xdpyinfo"; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 535fdf04308a..735eb8667b0e 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -122,6 +122,7 @@ xcursorgen, xcursor-themes, xdm, + xdpyinfo, xdriinfo, xev, xeyes, @@ -198,6 +199,7 @@ self: with self; { xconsole xcursorgen xdm + xdpyinfo xdriinfo xev xeyes @@ -408,64 +410,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - xdpyinfo = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libdmx, - libX11, - libxcb, - libXcomposite, - libXext, - libXi, - libXinerama, - xorgproto, - libXrender, - libXtst, - libXxf86dga, - libXxf86misc, - libXxf86vm, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "xdpyinfo"; - version = "1.3.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xdpyinfo-1.3.4.tar.xz"; - sha256 = "0aw2yhx4ys22231yihkzhnw9jsyzksl4yyf3sx0689npvf0sbbd8"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libdmx - libX11 - libxcb - libXcomposite - libXext - libXi - libXinerama - xorgproto - libXrender - libXtst - libXxf86dga - libXxf86misc - libXxf86vm - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! xf86inputevdev = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index c0f6faebd7f8..56ec18bce9f0 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -453,6 +453,7 @@ print OUT < Date: Sat, 23 Aug 2025 04:16:35 +0200 Subject: [PATCH 3/3] xrdb: refactor & move to pkgs/by-name from xorg namespace relevant changes: - switch to gitlab source instead of release tarball --- pkgs/by-name/xr/xrdb/package.nix | 58 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 40 +------------ .../x11/xorg/generate-expr-from-tarballs.pl | 2 + pkgs/servers/x11/xorg/overrides.nix | 7 --- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 62 insertions(+), 46 deletions(-) create mode 100644 pkgs/by-name/xr/xrdb/package.nix diff --git a/pkgs/by-name/xr/xrdb/package.nix b/pkgs/by-name/xr/xrdb/package.nix new file mode 100644 index 000000000000..653849f1f157 --- /dev/null +++ b/pkgs/by-name/xr/xrdb/package.nix @@ -0,0 +1,58 @@ +{ + lib, + stdenv, + fetchFromGitLab, + autoreconfHook, + pkg-config, + util-macros, + xorgproto, + libx11, + libxmu, + mcpp, + nix-update-script, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "xrdb"; + version = "1.2.2"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + group = "xorg"; + owner = "app"; + repo = "xrdb"; + tag = "xrdb-${finalAttrs.version}"; + hash = "sha256-XCi/E6tVaLYGRsMWJalCl1J8VIT4xV6KFuo+K//LQGY="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + util-macros + ]; + + buildInputs = [ + xorgproto + libx11 + libxmu + ]; + + # replace gcc with mcpp as preprocessor to reduce the closure size + # see https://github.com/NixOS/nixpkgs/issues/9480 + configureFlags = [ "--with-cpp=${lib.getExe mcpp}" ]; + + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex=xrdb-(.*)" ]; }; + + meta = { + description = "X resource database utility"; + homepage = "https://gitlab.freedesktop.org/xorg/app/xrdb"; + license = with lib.licenses; [ + hpndDec + mitOpenGroup + ]; + mainProgram = "xrdb"; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 735eb8667b0e..4f983ac010d6 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -147,6 +147,7 @@ xorg-sgml-doctools, xprop, xrandr, + xrdb, xrefresh, xset, xsetroot, @@ -220,6 +221,7 @@ self: with self; { xorgproto xprop xrandr + xrdb xrefresh xset xsetroot @@ -2584,44 +2586,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - xrdb = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libX11, - libXmu, - xorgproto, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "xrdb"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xrdb-1.2.2.tar.xz"; - sha256 = "1x1ka0zbcw66a06jvsy92bvnsj9vxbvnq1hbn1az4f0v4fmzrx9i"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libX11 - libXmu - xorgproto - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! xtrap = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 56ec18bce9f0..e0eaa35c4ce5 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -478,6 +478,7 @@ print OUT <