diff options
author | Artyom Shalkhakov <artyom.shalkhakov@gmail.com> | 2014-11-17 17:32:49 +0600 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2016-08-16 20:58:57 +0000 |
commit | a28c729766b1ed47e62b8c43b5d87a52c5b78922 (patch) | |
tree | 14512176372013e9d974025ad1bc4fe53b6632aa | |
parent | 2709079569d8b4dc8cf656bafeb260bd10f95d26 (diff) | |
download | nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar.gz nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar.bz2 nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar.lz nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar.xz nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.tar.zst nixlib-a28c729766b1ed47e62b8c43b5d87a52c5b78922.zip |
gnustep: init
Adding new library: gnustep-startup, which packages the core libraries necessary for GNUstep: gnustep-make, gnustep-base, gnustep-gui, gnustep-backend.
-rw-r--r-- | lib/maintainers.nix | 1 | ||||
-rw-r--r-- | pkgs/development/libraries/gnustep-startup/default.nix | 83 | ||||
-rw-r--r-- | pkgs/development/libraries/libobjc2/default.nix | 49 | ||||
-rw-r--r-- | pkgs/development/libraries/libobjc2/removeCXXtests.patch | 20 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 7 |
5 files changed, 160 insertions, 0 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix index af43ae639ea6..fde07ca493f5 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -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>"; diff --git a/pkgs/development/libraries/gnustep-startup/default.nix b/pkgs/development/libraries/gnustep-startup/default.nix new file mode 100644 index 000000000000..77a9fa439ccb --- /dev/null +++ b/pkgs/development/libraries/gnustep-startup/default.nix @@ -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; + }; +} diff --git a/pkgs/development/libraries/libobjc2/default.nix b/pkgs/development/libraries/libobjc2/default.nix new file mode 100644 index 000000000000..a3f45b5cc230 --- /dev/null +++ b/pkgs/development/libraries/libobjc2/default.nix @@ -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; + }; +} \ No newline at end of file diff --git a/pkgs/development/libraries/libobjc2/removeCXXtests.patch b/pkgs/development/libraries/libobjc2/removeCXXtests.patch new file mode 100644 index 000000000000..48c17c1d7602 --- /dev/null +++ b/pkgs/development/libraries/libobjc2/removeCXXtests.patch @@ -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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e5ee0608839f..45f410c770a2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; |