Skip to content

Commit

Permalink
* Start the switch to the new X libraries. It's still conditional:
Browse files Browse the repository at this point in the history
  set `useOldXLibs' to `false' in all-packages-generic.nix to use
  them.
* Added Xaw3d.
* Added Xaw3d support to Emacs.

svn path=/nixpkgs/trunk/; revision=4263
  • Loading branch information
edolstra committed Nov 12, 2005
1 parent abcd9e8 commit ea95a05
Show file tree
Hide file tree
Showing 10 changed files with 172 additions and 17 deletions.
File renamed without changes.
27 changes: 19 additions & 8 deletions pkgs/applications/editors/emacs/default.nix
@@ -1,14 +1,25 @@
{stdenv, fetchurl, xlibs}:
{ xawSupport ? true
, xpmSupport ? true
, xaw3dSupport ? false
, stdenv, fetchurl, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
}:

assert xawSupport -> libXaw != null;
assert xpmSupport -> libXpm != null;
assert xaw3dSupport -> Xaw3d != null;

stdenv.mkDerivation {
name = "emacs-21.3";
name = "emacs-21.4a-Z";
builder = ./builder.sh;
src = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/emacs-21.3.tar.gz;
md5 = "a0bab457cbf5b4f8eb99d1d0a3ada420";
url = http://ftp.gnu.org/pub/gnu/emacs/emacs-21.4a.tar.gz;
md5 = "8f9d97cbd126121bd5d97e5e31168a87";
};
patches = [./patchfile];
inherit (xlibs) libXaw libX11;

buildInputs = [xlibs.libXaw xlibs.libX11];
patches = [./crt.patch];
buildInputs = [
x11
(if xawSupport then libXaw else null)
(if xpmSupport then libXpm else null)
(if xaw3dSupport then Xaw3d else null)
];
}
22 changes: 22 additions & 0 deletions pkgs/development/libraries/Xaw3d/builder.sh
@@ -0,0 +1,22 @@
source $stdenv/setup

configurePhase=configurePhase
configurePhase() {
cd lib/Xaw3d
(mkdir X11 && cd X11 && ln -fs .. Xaw3d)
xmkmf
}

buildPhase=buildPhase
buildPhase() {
make depend $makeFlags
make $makeFlags
}

installPhase() {
make install SHLIBDIR=$out/lib USRLIBDIR=$out/lib INCDIR=$out/include
}

makeFlags="CDEBUGFLAGS=" # !!! awful hack

genericBuild
51 changes: 51 additions & 0 deletions pkgs/development/libraries/Xaw3d/config.patch
@@ -0,0 +1,51 @@
diff -rc xc-orig/lib/Xaw3d/Imakefile xc/lib/Xaw3d/Imakefile
*** xc-orig/lib/Xaw3d/Imakefile 2003-03-08 15:55:18.000000000 +0100
--- xc/lib/Xaw3d/Imakefile 2005-11-11 20:12:24.000000000 +0100
***************
*** 9,15 ****
XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
#define GRAY_BLKWHT_STIPPLES
XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
! #undef ARROW_SCROLLBARS

#define DoNormalLib NormalLibXaw
#define DoSharedLib SharedLibXaw
--- 9,15 ----
XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
#define GRAY_BLKWHT_STIPPLES
XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
! #define ARROW_SCROLLBARS

#define DoNormalLib NormalLibXaw
#define DoSharedLib SharedLibXaw
***************
*** 22,28 ****
#define IncSubSubdir Xaw3d

XCOMM When building outside an X11 source tree:
! XCOMM EXTRA_INCLUDES = -I.

#ifdef SharedXawReqs
REQUIREDLIBS = SharedXawReqs
--- 22,28 ----
#define IncSubSubdir Xaw3d

XCOMM When building outside an X11 source tree:
! EXTRA_INCLUDES = -I.

#ifdef SharedXawReqs
REQUIREDLIBS = SharedXawReqs
diff -rc xc-orig/lib/Xaw3d/laylex.l xc/lib/Xaw3d/laylex.l
*** xc-orig/lib/Xaw3d/laylex.l 1996-10-15 16:41:26.000000000 +0200
--- xc/lib/Xaw3d/laylex.l 2005-11-11 20:03:50.000000000 +0100
***************
*** 26,31 ****
--- 26,33 ----
#ifdef __STDC__
static int count ();
#endif
+
+ static int LayYY_prev_more_offset = 0;
%}
%%
vertical return VERTICAL;
12 changes: 12 additions & 0 deletions pkgs/development/libraries/Xaw3d/default.nix
@@ -0,0 +1,12 @@
{stdenv, fetchurl, x11, xmkmf, makedepend, libXmu, libXpm, libXp, bison, flex}:

stdenv.mkDerivation {
name = "Xaw3d-1.5E";
builder = ./builder.sh;
src = fetchurl {
url = http://freshmeat.net/redir/xaw3d/11835/url_tgz/Xaw3d-1.5E.tar.gz;
md5 = "29ecfdcd6bcf47f62ecfd672d31269a1";
};
patches = [./config.patch];
buildInputs = [x11 xmkmf makedepend libXmu libXpm libXp bison flex];
}
8 changes: 8 additions & 0 deletions pkgs/development/libraries/xlibs-wrapper/builder.sh
@@ -0,0 +1,8 @@
source $stdenv/setup
dontBuild=1
dontMakeInstall=1
nop() {
sourceRoot=.
}
unpackPhase=nop
genericBuild
10 changes: 10 additions & 0 deletions pkgs/development/libraries/xlibs-wrapper/default.nix
@@ -0,0 +1,10 @@
{stdenv, packages}:

stdenv.mkDerivation {
name = "xlibs-wrapper";
builder = ./builder.sh;
propagatedBuildInputs = packages;
} // {
# For compatability with XFree86.
buildClientLibs = true;
}
12 changes: 9 additions & 3 deletions pkgs/servers/x11/xorg/default.nix
Expand Up @@ -1040,7 +1040,8 @@ rec {
url = http://nix.cs.uu.nl/dist/tarballs/xorg/libXft-2.1.8.tar.bz2;
md5 = "18e7a98444ece30ea5b51a24269f8c7c";
};
buildInputs = [pkgconfig libXrender freetype fontconfig ];
buildInputs = [pkgconfig libXrender libX11 ];
propagatedBuildInputs = [freetype fontconfig ];
};

xsm = stdenv.mkDerivation {
Expand Down Expand Up @@ -1786,11 +1787,14 @@ rec {

xmkmf = stdenv.mkDerivation {
name = "xmkmf-0.99.1";
builder = ./xmkmf.sh;
src = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/xorg/xmkmf-0.99.1.tar.bz2;
md5 = "75013b6eeed99fd7b4e7913144a9de22";
};
buildInputs = [pkgconfig ];
propagatedBuildInputs = [imake];
inherit xorgcffiles;
};

xorgcffiles = stdenv.mkDerivation {
Expand Down Expand Up @@ -1988,7 +1992,7 @@ rec {
url = http://nix.cs.uu.nl/dist/tarballs/xorg/xclock-0.99.1.tar.bz2;
md5 = "ec54b47ee229318cef76a3c86da9ef94";
};
buildInputs = [pkgconfig libX11 libXrender libXft libxkbfile ];
buildInputs = [pkgconfig libX11 libXrender libXft libxkbfile libXaw ];
};

xf86videoati = stdenv.mkDerivation {
Expand Down Expand Up @@ -2340,6 +2344,7 @@ rec {
md5 = "a3b65703a80cc0582757c595c0875612";
};
buildInputs = [pkgconfig libSM libX11 xproto kbproto ];
# !!! prop libSM
};

editres = stdenv.mkDerivation {
Expand Down Expand Up @@ -2438,7 +2443,8 @@ rec {
url = http://nix.cs.uu.nl/dist/tarballs/xorg/libXaw-0.99.1.tar.bz2;
md5 = "731f8a6407765466d1170d609137a922";
};
buildInputs = [pkgconfig xproto libX11 libXext libXt libXmu libXpm libXp ];
buildInputs = [pkgconfig xproto libX11 libXext libXt libXpm libXp ];
propagatedBuildInputs = [libXmu];
};

x11perf = stdenv.mkDerivation {
Expand Down
11 changes: 11 additions & 0 deletions pkgs/servers/x11/xorg/xmkmf.sh
@@ -0,0 +1,11 @@
source $stdenv/setup

postInstall=postInstall
postInstall() {
ensureDir $out/lib/X11/config
ln -s $xorgcffiles/lib/X11/config/* $out/lib/X11/config
touch $out/lib/X11/config/host.def # !!! hack
touch $out/lib/X11/config/date.def # !!! hack
}

genericBuild
36 changes: 30 additions & 6 deletions pkgs/system/all-packages-generic.nix
Expand Up @@ -14,8 +14,18 @@ rec {

### Symbolic names.

x11 = xlibs.xlibs; # !!! should be `x11ClientLibs' or some such
useOldXLibs = true;

# `xlibs' is the set of X library components. This used to be the
# old modular X libraries project (called `xlibs') but now it's just
# the set of packages in the modular X.org tree (which also includes
# non-library components like the server, drivers, fonts, etc.).
xlibs = if useOldXLibs then xlibsOld else xorg;

# `xlibs.xlibs' is a wrapper packages that combines libX11 and a bunch
# of other basic X client libraries.
x11 = if useOldXLibs then xlibsOld.xlibs else xlibsWrapper;


### BUILD SUPPORT

Expand Down Expand Up @@ -979,13 +989,25 @@ rec {
inherit fetchurl stdenv freetype expat;
};

xlibs = (import ../development/libraries/xlibs) {
xlibsOld = (import ../development/libraries/xlibs) {
inherit fetchurl stdenv pkgconfig freetype fontconfig;
};

# Xaw3d = import ../development/libraries/Xaw3d {
# inherit fetchurl stdenv;
# };
xlibsWrapper = import ../development/libraries/xlibs-wrapper {
inherit stdenv;
packages = [
freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
xlibs.xextproto
];
};

Xaw3d = import ../development/libraries/Xaw3d {
inherit fetchurl stdenv x11 bison;
flex = flexnew;
# !!! makedepend is impure
inherit (xlibs) xmkmf makedepend libXmu libXpm libXp;
};

libdrm = import ../development/libraries/libdrm {
inherit fetchurl stdenv;
Expand Down Expand Up @@ -1727,7 +1749,9 @@ rec {
};

emacs = (import ../applications/editors/emacs) {
inherit fetchurl stdenv xlibs;
inherit fetchurl stdenv x11 Xaw3d;
inherit (xlibs) libXaw libXpm;
xaw3dSupport = false;
};

nxml = (import ../applications/editors/emacs/modes/nxml) {
Expand Down

0 comments on commit ea95a05

Please sign in to comment.