gnustep: remove gnustep-startup

Removing gnustep-startup (not needed anymore). Adding Gorm and
ProjectCenter applications (these mostly work, provided the environment
is set up manually).
This commit is contained in:
Artyom Shalkhakov 2014-12-01 20:59:49 +06:00 committed by Matthew Bauer
parent 52d17a5f41
commit 5db3f3ee61
5 changed files with 108 additions and 107 deletions

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, gnustep_startup }:
{ buildEnv
, stdenv, fetchurl, gnustep_base, gnustep_make, gnustep_back, gnustep_gui
}:
let
version = "1.2.18";
in
@ -10,11 +11,49 @@ stdenv.mkDerivation rec {
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
sha256 = "1vpzvmsnynlq5dv6rw9vbk1zzsim6z7b2kprrlm8dknyq0r1sdrq";
};
buildInputs = [ gnustep_startup ];
buildPhase = ''
. ${gnustep_startup}/System/Library/Makefiles/GNUstep.sh
make
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
'';
meta = {

View File

@ -1,5 +1,7 @@
{ stdenv, fetchurl, gnustep_startup }:
{ buildEnv
, stdenv, fetchurl
, gnustep_base, gnustep_make, gnustep_back, gnustep_gui
}:
let
version = "0.6.2";
in
@ -9,12 +11,51 @@ stdenv.mkDerivation rec {
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/ProjectCenter-${version}.tar.gz";
sha256 = "0wwlbpqf541apw192jb633d634zkpjhcrrkd1j80y9hihphll465";
};
buildInputs = [ gnustep_startup ];
buildPhase = ''
. $gnustep_startup/GNUstep/System/Library/Makefiles/GNUstep.sh
make
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
'';
meta = {

View File

@ -0,0 +1,14 @@
diff -c ProjectCenter-0.6.2/GNUmakefile.preamble ProjectCenter-0.6.2.patched/GNUmakefile.preamble
--- ProjectCenter-0.6.2/GNUmakefile.preamble 2010-08-08 03:56:04.000000000 +0600
+++ artyom/ProjectCenter-0.6.2.patched/GNUmakefile.preamble 2014-12-01 20:08:31.000000000 +0600
@@ -39,7 +39,7 @@
ADDITIONAL_INCLUDE_DIRS += -I./ -I./Headers
# Additional LDFLAGS to pass to the linker
-ADDITIONAL_LDFLAGS +=
+ADDITIONAL_LDFLAGS += -lgnustep-base -lgnustep-gui
# Additional library directories the linker should search
ADDITIONAL_LIB_DIRS += -L./Framework/ProjectCenter.framework/$(GNUSTEP_TARGET_LDIR)
Diff finished. Mon Dec 1 20:08:50 2014

View File

@ -1,89 +0,0 @@
{ stdenv, fetchurl, pkgconfig
, aspell
, cups
, audiofile, portaudio
, clang, libobjc2
, gmp
, libjpeg, libtiff, libpng, giflib, libungif
, libxml2, libxslt, libiconv
, libffi
, gnutls, libgcrypt
, icu
, xlibs, x11
, freetype
, which
}:
let
version = "0.32.0";
in
stdenv.mkDerivation rec {
name = "gnustep-core-${version}";
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-startup-${version}.tar.gz";
sha256 = "1f24lggaind43jhp6gy5zspljbha5l2gnys1ddxjdxkiwqfkznc6";
};
buildInputs = [ clang libobjc2 cups audiofile portaudio aspell libjpeg libtiff libpng giflib libungif libxml2 libxslt libiconv gnutls libgcrypt icu pkgconfig x11 libffi freetype which ];
# TODO: libobjc2 is a propagated (compile-time/runtime) dependency
propagatedBuildInputs = [ libobjc2 cups audiofile portaudio aspell libjpeg libtiff libpng giflib libungif libxml2 libxslt libgcrypt icu gmp libiconv gnutls icu libffi ];
buildPhase = ''
./InstallGNUstep --batch --prefix=$out
'';
# TODO: add:
# . $out/System/Library/Makefiles/GNUstep.sh
# to bashrc prior to building any GNUstep package
# TODO: need a development environment for GNUstep packages
# - it would set various settings appropriately
# - similarly to what Python is doing
# ~/proj/nix/nixpkgs/pkgs/top-level/python-packages.nix: wrapPython?
# - buildPythonPackage: ~/proj/nix/nixpkgs/pkgs/development/python-modules/generic/default.nix
#
# TODO: could simply make the installPhase = "";
installPhase = ''
echo Do not forget to source $out/System/Library/Makefiles/GNUstep.sh!
'';
meta = {
description = "GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. GNUstep is based on and strives to be completely compatible with the Cocoa specification developed by Apple (Previously NeXT Software, Inc.).";
longDescription = ''
GNUstep is...
...an object-oriented tool development kit
GNUstep-make and GNUstep-base make up the core libraries contain
a complete system for writing non-graphic tools in Objective-C. The
make package allows you to setup a simple and powerful system for
building, installing and packaging your tools. The base package
includes all the classes necessary for writing an incredible array of
tools, from wrappers for system tools to tools for communicating with
web and other types of servers.
...and a graphical development kit
The core libraries contain classes for developing a complete
graphical application for almost any purpose. Along with our
object-oriented, graphical development applications,
ProjectCenter and Gorm it's simple to write very complex
commercial applications in weeks or months, rather than years
(or often, never) in the case of other development environments.
...and a cross platform development environment
GNUstep can, currently, allow you to build applications on
GNU/Linux, Windows, FreeBSD, OpenBSD, NetBSD, Solaris and any
POSIX compliant UNIX based operating system.
'';
homepage = http://gnustep.org/;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -7591,10 +7591,6 @@ in
gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
gnustep_startup = callPackage ../development/libraries/gnustep-startup/default.nix {
stdenv = clangStdenv;
giflib = giflib_4_1;
};
gorm = callPackage ../applications/editors/gorm/default.nix {
stdenv = clangStdenv;
};