Merge pull request #711 from lovek323/gnuplot

gnuplot and others: fix build on darwin
This commit is contained in:
Vladimír Čunát 2013-07-04 02:17:35 -07:00
commit 01548459be
14 changed files with 220 additions and 80 deletions

View File

@ -44,7 +44,7 @@ EOF
doCheck = true;
meta = {
meta = with stdenv.lib; {
description = "GNU Emacs 24, the extensible, customizable text editor";
longDescription = ''
@ -67,7 +67,7 @@ EOF
homepage = "http://www.gnu.org/software/emacs/";
license = "GPLv3+";
maintainers = with stdenv.lib.maintainers; [ ludo simons chaoflow ];
platforms = stdenv.lib.platforms.all;
maintainers = with maintainers; [ chaoflow lovek323 ludo simons ];
platforms = platforms.all;
};
}

View File

@ -9,10 +9,16 @@ stdenv.mkDerivation {
sha256 = "09ch709cb9fniwc4221xgkq0jf0x0lxs814sqig8p2dcll0llvzk";
};
buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 polkit gtk ];
buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 gtk ]
# polkit requires pam, which requires shadow.h, which is not available on
# darwin
++ stdenv.lib.optional (!stdenv.isDarwin) polkit;
propagatedBuildInputs = [ glib ];
nativeBuildInputs = [ pkgconfig intltool ];
configureFlags = "--with-gtk=2.0";
configureFlags = [ "--with-gtk=2.0" ]
# fixes the "libgconfbackend-oldxml.so is not portable" error on darwin
++ stdenv.lib.optional stdenv.isDarwin [ "--enable-static" ];
}

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl_gnome, pkgconfig, glib, libIDL}:
{ stdenv, fetchurl_gnome, pkgconfig, glib, libIDL, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = src.pkgname;
@ -14,5 +14,24 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libIDL ];
propagatedBuildInputs = [ glib libIDL ] ++ libintlOrEmpty;
meta = with stdenv.lib; {
homepage = https://projects.gnome.org/ORBit2/;
description = "A a CORBA 2.4-compliant Object Request Broker";
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 ];
longDescription = ''
ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) featuring
mature C, C++ and Python bindings. Bindings (in various degrees of
completeness) are also available for Perl, Lisp, Pascal, Ruby, and TCL;
others are in-progress. It supports POA, DII, DSI, TypeCode, Any, IR and
IIOP. Optional features including INS and threading are available. ORBit2
is engineered for the desktop workstation environment, with a focus on
performance, low resource usage, and security. The core ORB is written in
C, and runs under Linux, UNIX (BSD, Solaris, HP-UX, ...), and Windows.
ORBit2 is developed and released as open source software under GPL/LGPL.
'';
};
}

View File

@ -18,19 +18,23 @@ stdenv.mkDerivation {
propagatedBuildInputs = [ libffi ];
buildInputs = [ perl groff cmake python ]; # ToDo: polly, libc++; enable cxx11?
# created binaries need to be run before installation... I coudn't find a better way
preBuild = ''export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:"`pwd`/lib'';
# created binaries need to be run before installation... I coudn't find a
# better way
preBuild = ( if stdenv.isDarwin
then "export DYLD_LIBRARY_PATH='$DYLD_LIBRARY_PATH:'`pwd`/lib"
else "export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:'`pwd`/lib" );
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=ON" ];
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]
++ stdenv.lib.optional (!stdenv.isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ];
enableParallelBuilding = true;
#doCheck = true; # tests are broken, don't know why
# doCheck = true; # tests are broken, don't know why
meta = {
homepage = http://llvm.org/;
meta = with stdenv.lib; {
description = "Collection of modular and reusable compiler and toolchain technologies";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [viric shlevy raskin];
platforms = with stdenv.lib.platforms; all;
homepage = http://llvm.org/;
license = licenses.bsd;
maintainers = with maintainers; [ lovek323 raskin shlevy viric ];
platforms = platforms.all;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = "cracklib-2.8.16";
@ -8,8 +8,12 @@ stdenv.mkDerivation rec {
sha256 = "1g3mchdvra9nihxlkl3rdz96as3xnfw5m59hmr5k17l7qa9a8fpw";
};
meta = {
buildInputs = libintlOrEmpty;
meta = with stdenv.lib; {
homepage = http://sourceforge.net/projects/cracklib;
description = "A library for checking the strength of passwords";
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

View File

@ -24,7 +24,7 @@ let
'';
in
stdenv.mkDerivation (rec {
stdenv.mkDerivation rec {
name = "glib-2.36.1";
src = fetchurl {
@ -41,10 +41,7 @@ stdenv.mkDerivation (rec {
configureFlags = "--with-pcre=system --disable-fam";
postConfigure = "sed '/SANE_MALLOC_PROTOS/s,^,//,' -i config.h" # https://bugzilla.gnome.org/show_bug.cgi?id=698716 :-)
+ stdenv.lib.optionalString stdenv.isDarwin ''
sed '24 i #include <Foundation/Foundation.h>'
'';
postConfigure = "sed '/SANE_MALLOC_PROTOS/s,^,//,' -i config.h";
enableParallelBuilding = true;
@ -55,12 +52,12 @@ stdenv.mkDerivation (rec {
inherit flattenInclude;
};
meta = {
meta = with stdenv.lib; {
description = "GLib, a C library of programming buildings blocks";
homepage = http://www.gtk.org/;
license = "LGPLv2+";
maintainers = with stdenv.lib.maintainers; [ raskin urkud lovek323 ];
platforms = stdenv.lib.platforms.unix;
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ lovek323 raskin urkud ];
platforms = platforms.unix;
longDescription = ''
GLib provides the core application building blocks for libraries
@ -71,12 +68,3 @@ stdenv.mkDerivation (rec {
};
}
//
(stdenv.lib.optionalAttrs stdenv.isDarwin {
# XXX: Disable the NeXTstep back-end because stdenv.gcc doesn't support
# Objective-C.
postConfigure =
'' sed -i configure -e's/glib_have_cocoa=yes/glib_have_cocoa=no/g'
'';
}))

View File

@ -1,14 +1,17 @@
{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, gdk_pixbuf }:
{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, gdk_pixbuf
, libintlOrEmpty, autoconf, automake, otool }:
stdenv.mkDerivation rec {
name = "gobject-introspection-1.34.2";
buildInputs = [ flex bison glib pkgconfig python gdk_pixbuf ];
buildInputs = [ flex bison glib pkgconfig python gdk_pixbuf ]
++ libintlOrEmpty
++ stdenv.lib.optional stdenv.isDarwin otool;
propagatedBuildInputs = [ libffi ];
# Tests depend on cairo, which is undesirable (it pulls in lots of
# other dependencies).
configureFlags = "--disable-tests";
configureFlags = [ "--disable-tests" ];
src = fetchurl {
url = "mirror://gnome/sources/gobject-introspection/1.34/${name}.tar.xz";
@ -18,8 +21,17 @@ stdenv.mkDerivation rec {
postInstall = "rm -rf $out/share/gtk-doc";
meta = with stdenv.lib; {
maintainers = [ maintainers.urkud ];
platforms = platforms.linux;
description = "A middleware layer between C libraries and language bindings";
homepage = http://live.gnome.org/GObjectIntrospection;
maintainers = with maintainers; [ lovek323 urkud ];
platforms = platforms.unix;
longDescription = ''
GObject introspection is a middleware layer between C libraries (using
GObject) and language bindings. The C library can be scanned at compile
time and generate a metadata file, in addition to the actual native C
library. Then at runtime, language bindings can read this metadata and
automatically provide bindings to call into the C library.
'';
};
}

View File

@ -1,7 +1,5 @@
{ fetchurl, stdenv, pkgconfig, python, gstreamer
, xlibs, alsaLib, cdparanoia, libogg
, libtheora, libvorbis, freetype, pango
, liboil, glib
{ fetchurl, stdenv, pkgconfig, python, gstreamer, xlibs, alsaLib, cdparanoia
, libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo
, # Whether to build no plugins that have external dependencies
# (except the ALSA plugin).
minimalDeps ? false
@ -25,22 +23,25 @@ stdenv.mkDerivation rec {
# TODO : v4l, libvisual
buildInputs =
[ pkgconfig glib alsaLib ]
[ pkgconfig glib cairo ]
# can't build alsaLib on darwin
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib
++ stdenv.lib.optionals (!minimalDeps)
[ xlibs.xlibs xlibs.libXv cdparanoia libogg libtheora libvorbis
freetype pango liboil
];
[ xlibs.xlibs xlibs.libXv libogg libtheora libvorbis freetype pango
liboil ]
# can't build cdparanoia on darwin
++ stdenv.lib.optional (!minimalDeps && !stdenv.isDarwin) cdparanoia;
propagatedBuildInputs = [ gstreamer ];
postInstall = "rm -rf $out/share/gtk-doc";
meta = {
meta = with stdenv.lib; {
homepage = http://gstreamer.freedesktop.org;
description = "Base plug-ins for GStreamer";
license = "LGPLv2+";
license = licences.lgpl2Plus;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

View File

@ -12,9 +12,15 @@ stdenv.mkDerivation rec {
patches = [ ./x86_64-cpuid.patch ];
meta = {
homepage = http://liboil.freedesktop.org;
# fix "argb_paint_i386.c:53:Incorrect register `%rax' used with `l' suffix"
# errors
configureFlags = stdenv.lib.optional stdenv.isDarwin "--build=x86_64";
meta = with stdenv.lib; {
description = "A library of simple functions that are optimized for various CPUs";
license = "BSD-2";
homepage = http://liboil.freedesktop.org;
license = libraries.bsd2;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.all;
};
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
, gstreamer, gst_plugins_base, GConf
, gstreamer, gst_plugins_base, GConf, setFile
, withMesa ? true, mesa ? null, compat24 ? false, compat26 ? true, unicode ? true,
}:
@ -18,19 +18,23 @@ stdenv.mkDerivation {
sha256 = "04jda4bns7cmp7xy68qz112yg0lribpc6xs5k9gilfqcyhshqlvc";
};
buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
++ optional withMesa mesa;
buildInputs =
[ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
gst_plugins_base GConf ]
++ optional withMesa mesa
++ optional stdenv.isDarwin setFile;
nativeBuildInputs = [ pkgconfig ];
configureFlags = [
"--enable-gtk2"
configureFlags =
[ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
(if compat24 then "--enable-compat24" else "--disable-compat24")
(if compat26 then "--enable-compat26" else "--disable-compat26")
"--disable-precomp-headers"
(if unicode then "--enable-unicode" else "")
"--enable-mediactrl"
] ++ optional withMesa "--with-opengl";
(if compat26 then "--enable-compat26" else "--disable-compat26") ]
++ optional unicode "--enable-unicode"
++ optional withMesa "--with-opengl"
++ optionals stdenv.isDarwin
# allow building on 64-bit
[ "--with-cocoa" "--enable-universal-binaries" ];
SEARCH_LIB = optionalString withMesa "${mesa}/lib";
@ -38,7 +42,11 @@ stdenv.mkDerivation {
substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace /usr /no-such-path
";
" + optionalString stdenv.isDarwin ''
substituteInPlace configure --replace \
'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \
'ac_cv_prog_SETFILE="${setFile}/bin/SetFile"'
'';
postInstall = "
(cd $out/include && ln -s wx-*/* .)

View File

@ -0,0 +1,34 @@
{ stdenv }:
# this tool only exists on darwin
assert stdenv.isDarwin;
stdenv.mkDerivation {
name = "otool";
src = "/usr/bin/otool";
unpackPhase = "true";
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out/bin"
cp /usr/bin/otool "$out/bin"
'';
meta = with stdenv.lib; {
description = "Object file displaying tool";
homepage = https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/otool.1.html;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.darwin;
longDescription = ''
The otool command displays specified parts of object files or libraries.
If the, -m option is not used, the file arguments may be of the form
libx.a(foo.o), to request information about only that object file and not
the entire library.
'';
};
}

View File

@ -0,0 +1,34 @@
{ stdenv }:
# this tool only exists on darwin
assert stdenv.isDarwin;
stdenv.mkDerivation {
name = "setFile";
src = "/usr/bin/SetFile";
unpackPhase = "true";
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out/bin"
cp $src "$out/bin"
'';
meta = with stdenv.lib; {
description = "Set attributes of files and directories";
homepage = "http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/setfile.1.html";
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.darwin;
longDescription = ''
SetFile is a tool to set the file attributes on files in an HFS+
directory. It attempts to be similar to the setfile command in MPW. It can
apply rules to more than one file with the options apply- ing to all files
listed.
'';
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, zlib, gd, texinfo, makeWrapper
{ stdenv, fetchurl, zlib, gd, texinfo, makeWrapper, readline
, texLive ? null
, lua ? null
, emacs ? null
@ -10,9 +10,9 @@
, pango ? null
, cairo ? null
, pkgconfig ? null
, readline
, fontconfig ? null, gnused ? null, coreutils ? null
}:
, fontconfig ? null
, gnused ? null
, coreutils ? null }:
assert libX11 != null -> (fontconfig != null && gnused != null && coreutils != null);
@ -26,11 +26,14 @@ stdenv.mkDerivation rec {
buildInputs =
[ zlib gd texinfo readline emacs lua texLive libX11 libXt libXpm libXaw
wxGTK pango cairo pkgconfig makeWrapper
];
pango cairo pkgconfig makeWrapper ]
# compiling with wxGTK causes a malloc (double free) error on darwin
++ stdenv.lib.optional (!stdenv.isDarwin) wxGTK;
configureFlags = if libX11 != null then ["--with-x"] else ["--without-x"];
NIX_CFLAGS_COMPILE = "-I${cairo}/include/cairo";
postInstall = stdenv.lib.optionalString (libX11 != null) ''
wrapProgram $out/bin/gnuplot \
--prefix PATH : '${gnused}/bin' \
@ -39,9 +42,10 @@ stdenv.mkDerivation rec {
--run '. ${./set-gdfontpath-from-fontconfig.sh}'
'';
meta = {
homepage = "http://www.gnuplot.info";
meta = with stdenv.lib; {
homepage = http://www.gnuplot.info;
description = "A portable command-line driven graphing utility for many platforms";
platforms = stdenv.lib.platforms.all;
platforms = platforms.all;
maintainers = with maintainers; [ lovek323 ];
};
}

View File

@ -444,6 +444,10 @@ let
apg = callPackage ../tools/security/apg { };
otool = callPackage ../development/tools/misc/otool { };
setFile = callPackage ../development/tools/misc/setFile { };
xcodeenv = callPackage ../development/mobile/xcodeenv { };
titaniumenv_2_1 = import ../development/mobile/titaniumenv {
@ -913,6 +917,11 @@ let
gnuplot = callPackage ../tools/graphics/gnuplot {
texLive = null;
lua = null;
# use gccApple to compile on darwin, seems to resolve a malloc error
stdenv = if stdenv.isDarwin
then stdenvAdapters.overrideGCC stdenv gccApple
else stdenv;
};
gnused = callPackage ../tools/text/gnused { };
@ -5473,6 +5482,11 @@ let
wxGTK29 = callPackage ../development/libraries/wxGTK-2.9/default.nix {
inherit (gnome) GConf;
withMesa = lib.elem system lib.platforms.mesaPlatforms;
# use for Objective-C++ compiler
stdenv = if stdenv.isDarwin
then clangStdenv
else stdenv;
};
wtk = callPackage ../development/libraries/wtk { };
@ -7232,6 +7246,12 @@ let
alsaLib = null;
imagemagick = null;
texinfo = texinfo5;
# use gccApple on darwin to deal with: unexec: 'my_edata is not in section
# __data'
stdenv = if stdenv.isDarwin
then stdenvAdapters.overrideGCC stdenv gccApple
else stdenv;
};
emacsPackages = emacs: self: let callPackage = newScope self; in rec {