From 4cbeef463c53877f9756d02d81bfd93fe187ccd0 Mon Sep 17 00:00:00 2001 From: Artyom Shalkhakov Date: Mon, 8 Dec 2014 22:25:47 +0600 Subject: [PATCH] gnustep: use gnustep_builder Built ProjectCenter and Gorm with the new gnustep_builder. Had to go back and fix a few things. --- pkgs/applications/editors/gorm/default.nix | 49 ++--------------- .../editors/projectcenter/default.nix | 52 ++----------------- .../libraries/gnustep-back/default.nix | 4 +- .../libraries/gnustep-base/default.nix | 3 +- .../libraries/gnustep-gui/default.nix | 4 +- .../gnustep-make/build-gnustep-package.nix | 15 +++--- 6 files changed, 22 insertions(+), 105 deletions(-) diff --git a/pkgs/applications/editors/gorm/default.nix b/pkgs/applications/editors/gorm/default.nix index fd0b88322cdb..571c4f1b55e0 100644 --- a/pkgs/applications/editors/gorm/default.nix +++ b/pkgs/applications/editors/gorm/default.nix @@ -1,60 +1,17 @@ { buildEnv -, stdenv, fetchurl, gnustep_base, gnustep_make, gnustep_back, gnustep_gui +, stdenv, fetchurl, gnustep_builder, gnustep_base, gnustep_back, gnustep_gui }: let version = "1.2.18"; in -stdenv.mkDerivation rec { +gnustep_builder.mkDerivation rec { name = "gorm-${version}"; src = fetchurl { url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz"; sha256 = "1vpzvmsnynlq5dv6rw9vbk1zzsim6z7b2kprrlm8dknyq0r1sdrq"; }; - GNUSTEP_env = buildEnv { - name = "gnustep-gorm-env"; - paths = [ gnustep_make gnustep_back gnustep_base gnustep_gui ]; - pathsToLink = [ "/bin" "/sbin" "/include" "/lib" "/share" ]; - }; - GNUSTEP_MAKEFILES = "${GNUSTEP_env}/share/GNUstep/Makefiles"; - GNUSTEP_INSTALLATION_DOMAIN = "SYSTEM"; - ADDITIONAL_CPPFLAGS = "-DGNUSTEP"; - - buildInputs = [ gnustep_base gnustep_back gnustep_make gnustep_gui ]; - dontBuild = true; - installPhase = '' - export ADDITIONAL_INCLUDE_DIRS=${GNUSTEP_env}/include - make \ - GNUSTEP_SYSTEM_APPS=$GNUSTEP_env/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_ADMIN_APPS=$GNUSTEP_env/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_WEB_APPS=$GNUSTEP_env/lib/GNUstep/WebApplications \ - GNUSTEP_SYSTEM_TOOLS=$GNUSTEP_env/bin \ - GNUSTEP_SYSTEM_ADMIN_TOOLS=$GNUSTEP_env/sbin \ - GNUSTEP_SYSTEM_LIBRARY=$GNUSTEP_env/lib/GNUstep \ - GNUSTEP_SYSTEM_HEADERS=$GNUSTEP_env/include \ - GNUSTEP_SYSTEM_LIBRARIES=$GNUSTEP_env/lib \ - GNUSTEP_SYSTEM_DOC=$GNUSTEP_env/share/GNUstep/Documentation \ - GNUSTEP_SYSTEM_DOC_MAN=$GNUSTEP_env/share/man \ - GNUSTEP_SYSTEM_DOC_INFO=$GNUSTEP_env/share/info \ - GNUSTEP_SYSTEM_LIBRARIES=$GNUSTEP_env/lib \ - messages=yes - make install \ - GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ - GNUSTEP_SYSTEM_APPS=$out/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_ADMIN_APPS=$out/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_WEB_APPS=$out/lib/GNUstep/WebApplications \ - GNUSTEP_SYSTEM_TOOLS=$out/bin \ - GNUSTEP_SYSTEM_ADMIN_TOOLS=$out/sbin \ - GNUSTEP_SYSTEM_LIBRARY=$out/lib/GNUstep \ - GNUSTEP_SYSTEM_HEADERS=$out/include \ - GNUSTEP_SYSTEM_LIBRARIES=$out/lib \ - GNUSTEP_SYSTEM_DOC=$out/share/GNUstep/Documentation \ - GNUSTEP_SYSTEM_DOC_MAN=$out/share/man \ - GNUSTEP_SYSTEM_DOC_INFO=$out/share/info \ - GNUSTEP_SYSTEM_LIBRARIES=$out/lib \ - GNUSTEP_HEADERS=$out/include \ - DESTDIR_GNUSTEP_MAKEFILES=$out/share/GNUstep/Makefiles - ''; + deps = [ gnustep_base gnustep_back gnustep_gui ]; meta = { description = "Gorm stands for Graphical Object Relationship Modeller and is an easy-to-use interface designer for GNUstep"; diff --git a/pkgs/applications/editors/projectcenter/default.nix b/pkgs/applications/editors/projectcenter/default.nix index 56c4a0535c2b..a52a2cf70e3e 100644 --- a/pkgs/applications/editors/projectcenter/default.nix +++ b/pkgs/applications/editors/projectcenter/default.nix @@ -1,62 +1,20 @@ { buildEnv , stdenv, fetchurl -, gnustep_base, gnustep_make, gnustep_back, gnustep_gui +, gnustep_builder +, gnustep_base, gnustep_back, gnustep_gui }: let version = "0.6.2"; in -stdenv.mkDerivation rec { +gnustep_builder.mkDerivation rec { name = "projectcenter-${version}"; src = fetchurl { url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/ProjectCenter-${version}.tar.gz"; sha256 = "0wwlbpqf541apw192jb633d634zkpjhcrrkd1j80y9hihphll465"; }; - GNUSTEP_env = buildEnv { - name = "gnustep-projectcenter-env"; - paths = [ gnustep_make gnustep_back gnustep_base gnustep_gui ]; - pathsToLink = [ "/bin" "/sbin" "/include" "/lib" "/share" ]; - }; - GNUSTEP_MAKEFILES = "${GNUSTEP_env}/share/GNUstep/Makefiles"; - GNUSTEP_INSTALLATION_DOMAIN = "SYSTEM"; - ADDITIONAL_CPPFLAGS = "-DGNUSTEP"; - - patches = [ ./fixup-preamble.patch ]; - buildInputs = [ gnustep_base gnustep_back gnustep_make gnustep_gui ]; - dontBuild = true; - - installPhase = '' - export ADDITIONAL_INCLUDE_DIRS=${GNUSTEP_env}/include - make \ - GNUSTEP_SYSTEM_APPS=$GNUSTEP_env/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_ADMIN_APPS=$GNUSTEP_env/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_WEB_APPS=$GNUSTEP_env/lib/GNUstep/WebApplications \ - GNUSTEP_SYSTEM_TOOLS=$GNUSTEP_env/bin \ - GNUSTEP_SYSTEM_ADMIN_TOOLS=$GNUSTEP_env/sbin \ - GNUSTEP_SYSTEM_LIBRARY=$GNUSTEP_env/lib/GNUstep \ - GNUSTEP_SYSTEM_HEADERS=$GNUSTEP_env/include \ - GNUSTEP_SYSTEM_LIBRARIES=$GNUSTEP_env/lib \ - GNUSTEP_SYSTEM_DOC=$GNUSTEP_env/share/GNUstep/Documentation \ - GNUSTEP_SYSTEM_DOC_MAN=$GNUSTEP_env/share/man \ - GNUSTEP_SYSTEM_DOC_INFO=$GNUSTEP_env/share/info \ - GNUSTEP_SYSTEM_LIBRARIES=$GNUSTEP_env/lib \ - messages=yes - make install \ - GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \ - GNUSTEP_SYSTEM_APPS=$out/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_ADMIN_APPS=$out/lib/GNUstep/Applications \ - GNUSTEP_SYSTEM_WEB_APPS=$out/lib/GNUstep/WebApplications \ - GNUSTEP_SYSTEM_TOOLS=$out/bin \ - GNUSTEP_SYSTEM_ADMIN_TOOLS=$out/sbin \ - GNUSTEP_SYSTEM_LIBRARY=$out/lib/GNUstep \ - GNUSTEP_SYSTEM_HEADERS=$out/include \ - GNUSTEP_SYSTEM_LIBRARIES=$out/lib \ - GNUSTEP_SYSTEM_DOC=$out/share/GNUstep/Documentation \ - GNUSTEP_SYSTEM_DOC_MAN=$out/share/man \ - GNUSTEP_SYSTEM_DOC_INFO=$out/share/info \ - GNUSTEP_SYSTEM_LIBRARIES=$out/lib \ - GNUSTEP_HEADERS=$out/include - ''; +# patches = [ ./fixup-preamble.patch ]; + deps = [ gnustep_base gnustep_back gnustep_gui ]; meta = { description = "ProjectCenter is GNUstep's integrated development environment (IDE) and allows a rapid development and easy managment of ProjectCenter running on GNUstep applications, tools and frameworks."; diff --git a/pkgs/development/libraries/gnustep-back/default.nix b/pkgs/development/libraries/gnustep-back/default.nix index b19beb9d6901..826c284fa213 100644 --- a/pkgs/development/libraries/gnustep-back/default.nix +++ b/pkgs/development/libraries/gnustep-back/default.nix @@ -2,7 +2,7 @@ , cairo , clang , fetchurl -, gnustep_base, gnustep_make, gnustep_gui +, gnustep_base, gnustep_gui , gnustep_builder , xlibs , x11 @@ -20,7 +20,7 @@ gnustep_builder.mkDerivation rec { sha256 = "0qixbilkkrqxrhhj9hnp7ygd5gs23b3qbbgk3gaxj73d0xqfvhjz"; }; buildInputs = [ cairo clang freetype pkgconfig x11 ]; - deps = [ gnustep_make gnustep_base gnustep_gui ]; + deps = [ gnustep_base gnustep_gui ]; meta = { description = "GNUstep-back is a generic backend for GNUstep."; diff --git a/pkgs/development/libraries/gnustep-base/default.nix b/pkgs/development/libraries/gnustep-base/default.nix index 7def6e6f8db1..90ead68f16bd 100644 --- a/pkgs/development/libraries/gnustep-base/default.nix +++ b/pkgs/development/libraries/gnustep-base/default.nix @@ -2,7 +2,7 @@ , gnustep_builder , clang, cups , fetchurl -, gmp, gnustep_make, gnutls +, gmp, gnutls , libffi , libjpeg, libtiff, libpng, giflib, libungif , libxml2, libxslt, libiconv @@ -44,7 +44,6 @@ gnustep_builder.mkDerivation { icu portaudio ]; - deps = [ gnustep_make ]; patches = [ ./fixup-base-makefile-installdir.patch ]; meta = { description = "GNUstep-base is an implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa."; diff --git a/pkgs/development/libraries/gnustep-gui/default.nix b/pkgs/development/libraries/gnustep-gui/default.nix index a4a84d4fa8c3..08dd8a712dcc 100644 --- a/pkgs/development/libraries/gnustep-gui/default.nix +++ b/pkgs/development/libraries/gnustep-gui/default.nix @@ -1,7 +1,7 @@ { clang , fetchurl -, gnustep_base, gnustep_make +, gnustep_base , gnustep_builder #, xlibs, x11, freetype #, pkgconfig @@ -16,7 +16,7 @@ gnustep_builder.mkDerivation rec { sha256 = "0d6jzfcyacxjzrr2p398ysvs1akv1fcmngfzxxbfxa947miydjxg"; }; buildInputs = [ clang ]; - deps = [ gnustep_base gnustep_make ]; + deps = [ gnustep_base ]; patches = [ ./fixup-gui-makefile-installdir.patch ./fixup-gui-tools-preamble.patch ./fixup-gui-textconverters-preamble.patch ]; meta = { description = "GNUstep-gui is a GUI class library of GNUstep."; diff --git a/pkgs/development/tools/build-managers/gnustep-make/build-gnustep-package.nix b/pkgs/development/tools/build-managers/gnustep-make/build-gnustep-package.nix index 8c106cc92423..8351bcfeb720 100644 --- a/pkgs/development/tools/build-managers/gnustep-make/build-gnustep-package.nix +++ b/pkgs/development/tools/build-managers/gnustep-make/build-gnustep-package.nix @@ -4,14 +4,14 @@ with stdenv.lib; { mkDerivation = - args @ { name, src, deps ? [], buildInputs, ... }: + args @ { name, src, deps ? [], buildInputs ? [], propagatedBuildInputs ? [], ... }: let GNUSTEP_env = # buildEnv fails if there is only one path to symlink - if deps == null || length deps < 2 then gnustep_make + if deps == null || length deps < 1 then gnustep_make else buildEnv { - name = "gnustep-env-${name}"; - paths = deps; + name = "gnustep-env-for-${name}"; + paths = [ gnustep_make ] ++ deps; pathsToLink = [ "/bin" "/sbin" "/lib" "/include" "/share" ]; }; in @@ -20,7 +20,8 @@ with stdenv.lib; inherit GNUSTEP_env; GNUSTEP_MAKEFILES = "${GNUSTEP_env}/share/GNUstep/Makefiles"; GNUSTEP_INSTALLATION_DOMAIN = "SYSTEM"; - buildInputs = args.buildInputs ++ deps; + buildInputs = buildInputs ++ deps ++ [ gnustep_make ]; + propagatedBuildInputs = propagatedBuildInputs ++ deps; preConfigure = '' cp $GNUSTEP_conf $(pwd)/GNUstep-build.conf substituteInPlace $(pwd)/GNUstep-build.conf \ @@ -38,7 +39,9 @@ with stdenv.lib; --subst-var-by systemDocInfo "$GNUSTEP_env/share/info" export GNUSTEP_CONFIG_FILE=$(pwd)/GNUstep-build.conf . $GNUSTEP_MAKEFILES/GNUstep.sh - ''; + ''; + buildFlags = "GNUSTEP_MAKEFILES=${GNUSTEP_env}/share/GNUstep/Makefiles"; + configureFlags = "GNUSTEP_MAKEFILES=${GNUSTEP_env}/share/GNUstep/Makefiles"; installFlags = "GNUSTEP_SYSTEM_APPS=\${out}/lib/GNUstep/Applications GNUSTEP_SYSTEM_ADMIN_APPS=\${out}/lib/GNUstep/Applications GNUSTEP_SYSTEM_WEB_APPS=\${out}/lib/GNUstep/WebApplications GNUSTEP_SYSTEM_TOOLS=\${out}/bin GNUSTEP_SYSTEM_ADMIN_TOOLS=\${out}/sbin GNUSTEP_SYSTEM_LIBRARY=\${out}/lib GNUSTEP_SYSTEM_HEADERS=\${out}/include GNUSTEP_SYSTEM_LIBRARIES=\${out}/lib GNUSTEP_SYSTEM_DOC=\${out}/share/GNUstep/Documentation GNUSTEP_SYSTEM_DOC_MAN=\${out}/share/man GNUSTEP_SYSTEM_DOC_INFO=\${out}/share/info GNUSTEP_SYSTEM_LIBRARIES=\${out}/lib GNUSTEP_HEADERS=\${out}/include DESTDIR_GNUSTEP_MAKEFILES=\${out}/share/GNUstep/Makefiles"; }); }