gnustep: rescope everything into one folder

This should make merge conflicts easier to
handle. "gnustep" prefix has been removed to
make thing simpler. So "gnustep_make" is now
"make" within the gnustep scope.
This commit is contained in:
Matthew Bauer
2016-06-27 20:32:47 +00:00
parent 697982b91b
commit c3974455eb
32 changed files with 68 additions and 123 deletions

View File

@@ -1,7 +1,7 @@
{ gsmakeDerivation
, cairo
, fetchurl
, gnustep_base, gnustep_gui
, base, gui
, xlibs
, x11
, freetype
@@ -17,7 +17,7 @@ gsmakeDerivation {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.24.0.tar.gz";
sha256 = "0qixbilkkrqxrhhj9hnp7ygd5gs23b3qbbgk3gaxj73d0xqfvhjz";
};
buildInputs = [ cairo gnustep_base gnustep_gui freetype pkgconfig x11 ];
buildInputs = [ cairo base gui freetype pkgconfig x11 ];
meta = {
description = "GNUstep-back is a generic backend for GNUstep.";

View File

@@ -20,17 +20,7 @@ gsmakeDerivation {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.7.tar.gz";
sha256 = "0qhphw61ksyzf04a4apmvx8000alws6d92x8ila1mi5bapcpv41s";
};
buildInputs = [
aspell audiofile
cups
gmp gnutls
libffi
libjpeg libtiff libpng giflib libungif
libxml2 libxslt libiconv
libobjc2 libgcrypt
icu
pkgconfig portaudio
];
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [
aspell audiofile
cups

View File

@@ -0,0 +1,22 @@
{ pkgs, newScope }:
let
callPackage = newScope self;
self = rec {
stdenv = pkgs.clangStdenv;
gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {};
gorm = callPackage ./gorm {};
projectcenter = callPackage ./projectcenter {};
system_preferences = callPackage ./systempreferences {};
libobjc2 = callPackage ./libobjc2 {};
make = callPackage ./make {};
xcode = callPackage ./xcode {};
back = callPackage ./back {};
base = callPackage ./base { giflib = pkgs.giflib_4_1; };
gui = callPackage ./gui {};
gworkspace = callPackage ./gworkspace {};
};
in self

View File

@@ -0,0 +1,27 @@
{ stdenv, fetchurl, base, back, gsmakeDerivation, gui
}:
let
version = "1.2.18";
in
gsmakeDerivation {
name = "gorm-${version}";
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
sha256 = "1vpzvmsnynlq5dv6rw9vbk1zzsim6z7b2kprrlm8dknyq0r1sdrq";
};
# patches = [ ./fix-gs-makefiles.patch ];
buildInputs = [ base back gui ];
# propagatedBuildInputs = [ 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";
homepage = http://www.gnustep.org/experience/Gorm.html;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -0,0 +1,28 @@
diff -ru gorm-1.2.20/GNUmakefile gorm-1.2.20.patched/GNUmakefile
--- gorm-1.2.20/GNUmakefile 2010-05-30 12:55:26.000000000 +0600
+++ gorm-1.2.20.patched/GNUmakefile 2014-12-10 22:21:18.000000000 +0600
@@ -24,6 +24,23 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
+ifeq ($(GNUSTEP_MAKEFILES),)
+ GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null)
+ ifeq ($(GNUSTEP_MAKEFILES),)
+ $(warning )
+ $(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!)
+ $(warning Perhaps gnustep-make is not properly installed,)
+ $(warning so gnustep-config is not in your PATH.)
+ $(warning )
+ $(warning Your PATH is currently $(PATH))
+ $(warning )
+ endif
+endif
+
+ifeq ($(GNUSTEP_MAKEFILES),)
+ $(error You need to set GNUSTEP_MAKEFILES before compiling!)
+endif
+
PACKAGE_NAME = gorm
export PACKAGE_NAME
include $(GNUSTEP_MAKEFILES)/common.make
Only in gorm-1.2.20.patched/: GNUmakefile~

View File

@@ -1,6 +1,6 @@
{ gsmakeDerivation
, fetchurl
, gnustep_base
, base
, stdenv }:
let
version = "0.24.0";
@@ -11,7 +11,7 @@ gsmakeDerivation {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.0.tar.gz";
sha256 = "0d6jzfcyacxjzrr2p398ysvs1akv1fcmngfzxxbfxa947miydjxg";
};
buildInputs = [ gnustep_base ];
buildInputs = [ base ];
# propagatedBuildInputs = [ gnustep_base ];
# patches = [ ./fixup-gui-makefile-installdir.patch ];
# DEBUG!

View File

@@ -0,0 +1,32 @@
{ back, base, gui, gsmakeDerivation
, fetchurl
, sqlite
, stdenv
, system_preferences
}:
let
version = "0.9.2";
in
gsmakeDerivation {
name = "gworkspace-${version}";
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${version}.tar.gz";
sha256 = "1yzlka2dl1gb353wf9kw6l26sdihdhgwvdfg5waqwdfl7ycfyfaj";
};
# additional dependencies:
# - PDFKit framework from http://gap.nongnu.org/
# - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite!
buildInputs = [ back base gui system_preferences ];
# propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui system_preferences ];
configureFlags = [ "--with-inotify" ];
meta = {
description = "GWorkspace is a workspace manager for GNUstep";
homepage = http://www.gnustep.org/experience/GWorkspace.html;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -0,0 +1,11 @@
{ stdenv, lib, libobjc2, clang, make, makeWrapper, which }:
{ buildInputs ? []
, ...} @ args:
stdenv.mkDerivation (args // {
buildInputs = [ makeWrapper make which ] ++ buildInputs;
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
GNUSTEP_MAKEFILES = "${make}/share/GNUstep/Makefiles";
})

View File

@@ -0,0 +1,30 @@
{ stdenv, fetchurl
, base, back, gsmakeDerivation, gui, gorm
, gnumake, gdb
}:
let
version = "0.6.2";
in
gsmakeDerivation {
name = "projectcenter-${version}";
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/ProjectCenter-${version}.tar.gz";
sha256 = "0wwlbpqf541apw192jb633d634zkpjhcrrkd1j80y9hihphll465";
};
# NOTE: need a patch for ProjectCenter to help it locate some necessary tools:
# 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS)
# 2. Framework/PCProjectBuilder.m, locate gmake (similar)
propagatedBuildInputs = [ base back gui gnumake gdb gorm ];
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.";
homepage = http://www.gnustep.org/experience/ProjectCenter.html;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.linux;
};
}

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

@@ -0,0 +1,27 @@
{ back, base, gui, gsmakeDerivation
, fetchurl
, stdenv
}:
let
version = "1.1.0";
in
gsmakeDerivation {
name = "system_preferences-${version}";
src = fetchurl {
url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${version}.tar.gz";
sha256 = "1q68bs8rlq0dxkar01qs5wfyas4iivddnama371jd7ll6cxzmpy7";
};
# GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles";
buildInputs = [ back base gui ];
# propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui ];
meta = {
description = "System Preferences allows to manage the settings of many aspects of the GNUstep environment and its applications";
homepage = http://www.gnustep.org/experience/systempreferences.html;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = with stdenv.lib.maintainers; [ ashalkhakov ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@@ -0,0 +1,19 @@
{ stdenv, fetchFromGitHub, make, libobjc2, base }:
stdenv.mkDerivation rec {
name = "xcode-${version}";
version = "1.0";
makeFlags = "messages=yes";
installFlags = "DESTDIR=$(out)";
buildInputs = [ make libobjc2 base ];
src = fetchFromGitHub {
owner = "gnustep";
repo = "xcode";
rev = "cc5016794e44f9998674120a5e4625aa09ca455a";
sha256 = "85420f3f61091b2e4548cf5e99d886cb9c72cf07b8b9fae3eebc87e7b6b7e54a";
};
}

View File

@@ -1,11 +0,0 @@
{ stdenv, lib, libobjc2, clang, gnustep_make, makeWrapper, which }:
{ buildInputs ? []
, ...} @ args:
stdenv.mkDerivation (args // {
buildInputs = [ makeWrapper gnustep_make which ] ++ buildInputs;
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles";
})

View File

@@ -1,38 +0,0 @@
{ stdenv, fetchurl }:
let version = "2.6.7"; in
stdenv.mkDerivation rec {
name = "gnustep-make-${version}";
src = fetchurl {
url = "http://ftpmain.gnustep.org/pub/gnustep/core/${name}.tar.gz";
sha256 = "1r2is23xdg4qirckb6bd4lynfwnnw5d9522wib3ndk1xgirmfaqi";
};
patchPhase = ''
substituteInPlace GNUmakefile.in \
--replace which type \
--replace 'tooldir = $(DESTDIR)' 'tooldir = ' \
--replace 'makedir = $(DESTDIR)' 'makedir = ' \
--replace 'mandir = $(DESTDIR)' 'mandir = '
substituteInPlace FilesystemLayouts/apple \
--replace /usr/local ""
substituteInPlace configure \
--replace /Library/GNUstep "$out"
'';
installFlags = "DESTDIR=$(out)";
postInstall = ''
mkdir -p $out/nix-support
cat >$out/nix-support/setup-hook <<EOF
. $out/Library/GNUstep/Makefiles/GNUstep.sh
EOF
'';
meta = {
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -1,23 +0,0 @@
{ stdenv, fetchgit, gnustep-make, Foundation, libobjc }:
stdenv.mkDerivation rec {
name = "xcode-${version}";
version = "1.0";
makeFlags = "messages=yes";
installFlags = "DESTDIR=$(out)";
__impureHostDeps = [
"/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation"
"/usr/lib/libextension.dylib"
];
buildInputs = [ gnustep-make Foundation libobjc ];
src = fetchgit {
url = "https://github.com/gnustep/xcode";
rev = "cc5016794e44f9998674120a5e4625aa09ca455a";
sha256 = "85420f3f61091b2e4548cf5e99d886cb9c72cf07b8b9fae3eebc87e7b6b7e54a";
};
}