3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/servers/x11/xorg/overrides.nix
Lluís Batlle i Rossell 585ba8c27f Big fixes in the cross build:
- Before this changes, cflags and ldflags for the native and the cross compiler
  got mixed. Not all the gcc-wrapper/gcc-cross-wrapper variables are
  independant now, but enough, I think.
- Fixed the generic stdenv expression, which did a big mess on buildInputs and
  buildNativeInputs. Now it distinguishes when there is a stdenvCross or not.
  Maybe we should have a single stdenv and forget about the stdenvCross
  adapter - this could end in a stdenv a bit complex, but simpler than the
  generic stdenv + adapter.
- Added basic support in pkgconfig for cross-builds: a single PKG_CONFIG_PATH
  now works for both the cross and the native compilers, but I think this
  should work well for most cases I can think of.
- I tried to fix the guile expression to cross-biuld; guile is built, but not
  its manual, so the derivation still fails. Guile requires patching to
  cross-build, as far as I understnad.
- Made the glibcCross build to be done through the usage of a
  gcc-cross-wrapper over the gcc-cross-stage-static, instead of using it
  directly.
- Trying to make physfs (a neverball dependency) cross build.
- Updated the gcc expression to support building a cross compiler without getting
  derivation variables mixed with those of the stdenvCross.

svn path=/nixpkgs/branches/stdenv-updates/; revision=18534
2009-11-22 19:51:45 +00:00

167 lines
4.9 KiB
Nix

{args, xorg}:
let
setMalloc0ReturnsNullCrossCompiling = ''
if test -n "$crossConfig"; then
configureFlags="$configureFlags --enable-malloc0returnsnull";
fi
'';
in
{
fontmiscmisc = attrs: attrs // {
postInstall =
''
ALIASFILE=${xorg.fontalias}/share/fonts/X11/misc/fonts.alias
test -f $ALIASFILE
ln -s $ALIASFILE $out/lib/X11/fonts/misc/fonts.alias
'';
};
imake = attrs: attrs // {
inherit (xorg) xorgcffiles;
x11BuildHook = ./imake.sh;
patches = [./imake.patch];
};
mkfontdir = attrs: attrs // {
preBuild = "substituteInPlace mkfontdir.cpp --replace BINDIR ${xorg.mkfontscale}/bin";
};
libxcb = attrs : attrs // {
# I only remove python from the original, and add xproto. I don't know how
# to achieve that referring to attrs.buildInputs.
# I should use: builtins.unsafeDiscardStringContext
buildInputs = [args.pkgconfig args.libxslt xorg.libpthreadstubs /*xorg.python*/
xorg.libXau xorg.xcbproto xorg.libXdmcp ] ++ [ xorg.xproto ];
buildNativeInputs = [ args.python ];
};
xcbproto = attrs : attrs // {
# I only remove python from the original.
buildInputs = [args.pkgconfig /*xorg.python*/ ];
buildNativeInputs = [ args.python ];
};
libX11 = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXrender = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXxf86vm = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXrandr = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXt = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXft = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [ xorg.xproto xorg.libX11
xorg.renderproto ];
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXext = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [xorg.libXau];
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
libXpm = attrs: attrs // {
patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
};
libXaw = attrs: attrs // {
# The libXaw installation is broken on MacOS X. The package has hard-coded
# know-how that assumes shared libraries use an .so suffix. MacOS, however,
# uses .dylib. Furthermore, the package fails to install an unversioned
# libtool .la file for the library.
postInstall = ''
cd $out/lib
ln -s libXaw8.la libXaw.la
if [ ${args.stdenv.system} = "i686-darwin" ]; then
rm *.so*
ln -s libXaw8.dylib libXaw.dylib
fi
'';
};
setxkbmap = attrs: attrs // {
postInstall =
''
ensureDir $out/share
ln -sfn ${args.xkeyboard_config}/etc/X11 $out/share/X11
'';
};
xf86inputevdev = attrs: attrs // {
configureFlags = "--with-sdkdir=\${out}/include/xorg";
preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
buildInputs = attrs.buildInputs ++ [xorg.kbproto xorg.libxkbfile xorg.randrproto];
};
xf86inputsynaptics = attrs: attrs // {
makeFlags = "sdkdir=\${out}/include/xorg";
};
xf86videointel = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
};
xf86videosis = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
};
xf86videoati = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
};
xf86videoopenchrome = attrs: attrs // {
name = "xf86-video-openchrome-svn-798";
src = args.fetchsvn {
url = http://svn.openchrome.org/svn/trunk;
sha256 = "1mhfh1n1x7fnxdbbkbz13lzd57m6xi3n9cblzgm43mz5bamacr02";
rev = 816;
};
buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa args.automake args.autoconf args.libtool xorg.libXext];
preConfigure = "chmod +x autogen.sh";
configureScript = "./autogen.sh";
};
xdriinfo = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
};
xkbcomp = attrs: attrs // {
NIX_CFLAGS_COMPILE = "-DDFLT_XKB_CONFIG_ROOT=\".\"";
};
xorgserver = attrs: attrs // {
patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
buildInputs = attrs.buildInputs ++
[ args.zlib xorg.xf86bigfontproto xorg.glproto args.mesa xorg.xf86driproto
xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
xorg.xineramaproto xorg.dri2proto xorg.xf86dgaproto xorg.dmxproto
xorg.libdmx xorg.xf86vidmodeproto xorg.libXext
];
propagatedBuildInputs =
[ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto ];
postInstall =
''
rm -rf $out/share/X11/xkb/compiled
ln -s /var/tmp $out/share/X11/xkb/compiled
'';
};
libSM = attrs: attrs // args.stdenv.lib.optionalAttrs (args.stdenv.system == "i686-darwin") {
configureFlags = "LIBUUID_CFLAGS='' LIBUUID_LIBS=''";
};
}