[Nix-dev] Request for comments: Xorg app-defaults

Lluís Batlle viriketo at gmail.com
Thu Dec 24 15:52:44 CET 2009


Hello,

some programs install app-defaults (a typical X resources file), that
are needed for the program to work. This is the case of xfontsel,
which I commited recently.

xfontsel looks for installed app-defaults in the libXt store path (in
fact, its make install attempts to install them there), and then in
$HOME.

As for other xorg programs, the app-defaults are installed in $out
instead of the libXt through a 'hack'. From xorg's builder.sh:
installFlags="appdefaultdir=$out/share/X11/app-defaults"

This does not make the files usable. Instead, one should take those
files and put them plainly at $HOME. xfontsel behaves bad if it lacks
its app-defaults file.

Has anyone thought of a solution to that? By now the app-defaults
files are installed in $out, but they are never read.

Regards,
Lluís.

2009/12/24 Llus Batlle <viriketo at gmail.com>:
> Author: viric
> Date: 2009-12-24 14:48:36 +0000 (Thu, 24 Dec 2009)
> New Revision: 19092
>
> You can view the changes in this commit at:
>   https://svn.nixos.org/viewvc/nix?rev=19092&view=rev
>
> Added:
>   nixpkgs/trunk/pkgs/applications/misc/xfontsel/
>   nixpkgs/trunk/pkgs/applications/misc/xfontsel/default.nix
> Modified:
>   nixpkgs/trunk/pkgs/top-level/all-packages.nix
>
> Log:
> Adding xfontsel. A bit hacky (to work well, it requires copying its app-defaults to $HOME)
> As app-defaults should be installed with the libXt (maybe it's libXt which loads them), and
> stracing that is the place where the code looks for app-defaults (the libXt store path), I
> don't know of any better solution in nixpkgs by now.
>
>
>
> Changes:
>
> Added: nixpkgs/trunk/pkgs/applications/misc/xfontsel/default.nix
> ===================================================================
> --- nixpkgs/trunk/pkgs/applications/misc/xfontsel/default.nix                           (rev 0)
> +++ nixpkgs/trunk/pkgs/applications/misc/xfontsel/default.nix   2009-12-24 14:48:36 UTC (rev 19092)
> @@ -0,0 +1,23 @@
> +# This program used to come with xorg releases, but now I could only find it
> +# at http://www.x.org/releases/individual/.
> +# That is why this expression is not inside pkgs.xorg
> +
> +{stdenv, fetchurl, libX11, pkgconfig, libXaw, libXi, imake, xauth, libXau}:
> +stdenv.mkDerivation rec {
> +  name = "xfontsel-1.0.2";
> +
> +  src = fetchurl {
> +    url = "http://www.x.org/releases/individual/app/${name}.tar.bz2";
> +    sha256 = "1a86a08sf0wjrki9ydh7hr5qf6hrixc4ljlxizakjzmx20wvlrks";
> +  };
> +
> +  buildInputs = [libX11 pkgconfig libXaw];
> +
> +  # This will not make xfontsel find its app-defaults, but at least the $out
> +  # directory will contain them.
> +  # hack: Copying the XFontSel app-defaults file to $HOME makes xfontsel work.
> +  patchPhase = ''
> +    sed -i 's@^appdefaultdir=.*@appdefaultdir='$out/share/X11/app-defaults@ configure
> +  '';
> +}
> +
>
> Modified: nixpkgs/trunk/pkgs/top-level/all-packages.nix
> ===================================================================
> --- nixpkgs/trunk/pkgs/top-level/all-packages.nix       2009-12-24 12:48:01 UTC (rev 19091)
> +++ nixpkgs/trunk/pkgs/top-level/all-packages.nix       2009-12-24 14:48:36 UTC (rev 19092)
> @@ -6731,6 +6731,12 @@
>     inherit (xlibs) libX11 libXxf86vm;
>   };
>
> +  xfontsel = import ../applications/misc/xfontsel {
> +    inherit fetchurl stdenv pkgconfig;
> +    inherit (xlibs) libX11 libXi imake libXau libXaw;
> +    inherit (xorg) xauth;
> +  };
> +
>   fspot = import ../applications/graphics/f-spot {
>     inherit fetchurl stdenv perl perlXMLParser pkgconfig mono
>             libexif libjpeg sqlite lcms libgphoto2 monoDLLFixer;
>
> _______________________________________________
> nix-commits mailing list
> nix-commits at cs.uu.nl
> http://mail.cs.uu.nl/mailman/listinfo/nix-commits
>



More information about the nix-dev mailing list