gnustep: init

Adding new library: gnustep-startup, which packages the core
libraries necessary for GNUstep: gnustep-make, gnustep-base,
gnustep-gui, gnustep-backend.
This commit is contained in:
Artyom Shalkhakov 2014-11-17 17:32:49 +06:00 committed by Matthew Bauer
parent 2709079569
commit a28c729766
5 changed files with 160 additions and 0 deletions

View File

@ -39,6 +39,7 @@
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
arobyn = "Alexei Robyn <shados@shados.net>";
artuuge = "Artur E. Ruuge <artuuge@gmail.com>";
ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>";
asppsa = "Alastair Pharo <asppsa@gmail.com>";
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
aszlig = "aszlig <aszlig@redmoonstudios.org>";

View File

@ -0,0 +1,83 @@
{ stdenv, fetchurl, pkgconfig
, aspell
, cups
, audiofile, portaudio
, clang, libobjc2
, 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: what's this for?
# nativeBuildInputs = [ ];
# propagatedBuildInputs = [ ];
buildPhase = ''
./InstallGNUstep --batch --prefix=$out
'';
# TODO: add:
# . $out/System/Library/Makefiles/GNUstep.sh
# to bashrc prior to building any GNUstep package
# 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

@ -0,0 +1,49 @@
{ stdenv, fetchurl,
clang,
cmake
}:
let
version = "1.7";
in
stdenv.mkDerivation rec {
name = "libobjc2-${version}";
src = fetchurl {
url = "http://download.gna.org/gnustep/libobjc2-1.7.tar.bz2";
sha256 = "1h9wkm1x9wrzd3alm99bx710lrs9nb8h2x5jpxbqwgbgzzv4l6rs";
};
buildInputs = [ clang cmake ];
# since we don't support Objective-C++, we don't interoperate
# with C++ either
patches = [ ./removeCXXtests.patch ];
# build phase:
# mkdir Build
# cd Build
# cmake ..
# make -j8
# make install
#
# probably useful:
cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
#
# cmakeDir = "../src"; # Build?
# postInstall = ''
# mkdir Build
# cd Build
# cmake -DCMAKE_INSTALL_PREFIX=$out -DGNUSTEP_INSTALL_TYPE=NONE ..
# make install
# '';
meta = {
description = "Objective-C runtime for use with GNUstep";
homepage = http://gnustep.org/;
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -0,0 +1,20 @@
diff -c libobjc2-1.7/Test/CMakeLists.txt libobjc2-1.7-patched/Test/CMakeLists.txt
*** libobjc2-1.7/Test/CMakeLists.txt 2014-11-17 13:38:30.000000000 +0600
--- libobjc2-1.7-patched/Test/CMakeLists.txt 2014-11-17 13:38:56.000000000 +0600
***************
*** 49,54 ****
endforeach()
# Tests that are more than a single file.
! addtest_flags(CXXExceptions "-O0" "CXXException.m;CXXException.cc")
! addtest_flags(CXXExceptions_optimised "-O3" "CXXException.m;CXXException.cc")
--- 49,54 ----
endforeach()
# Tests that are more than a single file.
! #addtest_flags(CXXExceptions "-O0" "CXXException.m;CXXException.cc")
! #addtest_flags(CXXExceptions_optimised "-O3" "CXXException.m;CXXException.cc")
Only in libobjc2-1.7-patched/Test: CMakeLists.txt~
Common subdirectories: libobjc2-1.7/Test/RuntimeTest.xcodeproj and libobjc2-1.7-patched/Test/RuntimeTest.xcodeproj

View File

@ -7586,6 +7586,11 @@ in
gnome-sharp = callPackage ../development/libraries/gnome-sharp {};
gnustep_startup = callPackage ../development/libraries/gnustep-startup/default.nix {
stdenv = clangStdenv;
giflib = giflib_4_1;
};
granite = callPackage ../development/libraries/granite { };
gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
@ -8388,6 +8393,8 @@ in
libnxml = callPackage ../development/libraries/libnxml { };
libobjc2 = callPackage ../development/libraries/libobjc2 { stdenv = clangStdenv; };
libodfgen = callPackage ../development/libraries/libodfgen { };
libofa = callPackage ../development/libraries/libofa { };