diff --git a/ant.nix b/ant.nix new file mode 100644 index 0000000..b2f3a59 --- /dev/null +++ b/ant.nix @@ -0,0 +1,33 @@ +{stdenv, fetchzip, jdk8, junit, breakpointHook}: stdenv.mkDerivation rec { + pname = "ant"; + version = "1.7.0"; + + src = fetchzip { + url = "https://archive.apache.org/dist/ant/source/apache-ant-1.7.0-src.tar.gz"; + hash = "sha256-IFAA0jVdnK5a6ElnPd8K24N4i2XyvlhfPmJlu2wrPgM="; + }; + + #patches = [./mysql.patch]; + + nativeBuildInputs = [jdk8]; + buildInputs = [breakpointHook]; + #buildInputs = [autoreconfHook ncurses breakpointHook]; + #env = { + # ACLOCAL_PATH="${libtool}/share/aclocal"; + # NIX_CFLAGS_COMPILE="-fpermissive"; + #}; + + buildPhase = '' + #cp ${junit}/junit-4.1.jar ./lib/junit.jar + export CLASSPATH="${junit}/junit-4.1.jar" + ./build.sh + #bash ./gradlew build + #bash ./gradlew install -Pgradle_installPath=$out + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/cssselect.nix b/cssselect.nix new file mode 100644 index 0000000..c9d0631 --- /dev/null +++ b/cssselect.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages}: python27Packages.buildPythonPackage rec { + pname = "cssselect"; + version = "1.0.1"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-c9scBUuTSECeKGL8bA3eXE5Pvk2mTFxangX76kV0QHc="; + }; + + propagatedBuildInputs = [python27Packages.setuptools]; +} diff --git a/django-cors-headers-multi.nix b/django-cors-headers-multi.nix new file mode 100644 index 0000000..b401d16 --- /dev/null +++ b/django-cors-headers-multi.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, django}: python27Packages.buildPythonPackage rec { + pname = "django-cors-headers-multi"; + version = "1.2.0"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-yhzPn9VJ/lRH6LodSWVlgmUc12gvePYqfND5Erk1mWg="; + }; + + propagatedBuildInputs = [python27Packages.setuptools django]; +} diff --git a/django-tables2.nix b/django-tables2.nix new file mode 100644 index 0000000..bfe4d59 --- /dev/null +++ b/django-tables2.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, django}: python27Packages.buildPythonPackage rec { + pname = "django-tables2"; + version = "1.10.0"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-UWB6Ha2prRDPCaqtxyCJYMaSKrcg3YtdDA0bIiLwCmY="; + }; + + propagatedBuildInputs = [python27Packages.setuptools django]; +} diff --git a/drf-nested-routers.nix b/drf-nested-routers.nix new file mode 100644 index 0000000..0d01575 --- /dev/null +++ b/drf-nested-routers.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, django, django-rest-framework}: python27Packages.buildPythonPackage rec { + pname = "drf-nested-routers"; + version = "0.90.0"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-gY/MN7bK//UvSvrgErjehZcKG5MfHkfC8Hok/RQetHY="; + }; + + propagatedBuildInputs = [python27Packages.setuptools django django-rest-framework]; +} diff --git a/elasticsearch-dsl.nix b/elasticsearch-dsl.nix new file mode 100644 index 0000000..a28a832 --- /dev/null +++ b/elasticsearch-dsl.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, elasticsearch, six, python-dateutil}: python27Packages.buildPythonPackage rec { + pname = "elasticsearch-dsl"; + version = "5.3.0"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-3oGyMizem/EXHIpB2AWWza3UM7iLk9qgkGCvOlElI6c="; + }; + + propagatedBuildInputs = [python27Packages.setuptools elasticsearch six python-dateutil]; +} diff --git a/elasticsearch-service.nix b/elasticsearch-service.nix new file mode 100644 index 0000000..e22ab74 --- /dev/null +++ b/elasticsearch-service.nix @@ -0,0 +1,30 @@ +{stdenv, fetchFromGitHub, gradle}: stdenv.mkDerivation rec { + pname = "elasticsearch"; + version = "5.3.3"; + + src = fetchFromGitHub { + owner = "elastic"; + repo = pname; + rev = "v" + version; + hash = "sha256-clrfLeJwmwfzml6YRJSWvtwVB2+MRUAmvXijllYzrEQ="; + }; + + #patches = [./mysql.patch]; + + nativeBuildInputs = [gradle]; + #buildInputs = [autoreconfHook ncurses breakpointHook]; + #env = { + # ACLOCAL_PATH="${libtool}/share/aclocal"; + # NIX_CFLAGS_COMPILE="-fpermissive"; + #}; + + buildPhase = '' + gradle assemble + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/email-reply-parser.nix b/email-reply-parser.nix new file mode 100644 index 0000000..ca26393 --- /dev/null +++ b/email-reply-parser.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages}: python27Packages.buildPythonPackage rec { + pname = "email_reply_parser"; + version = "0.5.9"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-+Sqm/XMUwsiDPykowP1tLib5TATrHeQJ51xZ8axC7vg="; + }; + + propagatedBuildInputs = [python27Packages.setuptools]; +} diff --git a/gradle.nix b/gradle.nix new file mode 100644 index 0000000..52fb9c5 --- /dev/null +++ b/gradle.nix @@ -0,0 +1,31 @@ +{stdenv, fetchFromGitHub, temurin-jre-bin-8, gradle_0_0_2}: stdenv.mkDerivation rec { + pname = "gradle"; + version = "2.13.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v" + version; + hash = "sha256-40rFlGsieGI6DkCddJsaXy1C8346dh+Qi/Lf/VEJVYQ="; + }; + + #patches = [./mysql.patch]; + + nativeBuildInputs = [temurin-jre-bin-8 gradle_0_0_2]; + #buildInputs = [autoreconfHook ncurses breakpointHook]; + #env = { + # ACLOCAL_PATH="${libtool}/share/aclocal"; + # NIX_CFLAGS_COMPILE="-fpermissive"; + #}; + + buildPhase = '' + bash ./gradlew build + bash ./gradlew install -Pgradle_installPath=$out + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/gradle_0_0_2.nix b/gradle_0_0_2.nix new file mode 100644 index 0000000..d1cef42 --- /dev/null +++ b/gradle_0_0_2.nix @@ -0,0 +1,32 @@ +{stdenv, fetchFromGitHub, temurin-jre-bin-8, ant}: stdenv.mkDerivation rec { + pname = "gradle"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "9efc38c9f9b4ed447ba7fb9c99211f4b260923ec"; + hash = "sha256-jtEKHVTp0LUB4U4eBAgE0F74kfCo/5S9qvQC0TvU3FA="; + }; + + #patches = [./mysql.patch]; + + nativeBuildInputs = [temurin-jre-bin-8 ant]; + #buildInputs = [autoreconfHook ncurses breakpointHook]; + #env = { + # ACLOCAL_PATH="${libtool}/share/aclocal"; + # NIX_CFLAGS_COMPILE="-fpermissive"; + #}; + + buildPhase = '' + ./gradlew + #bash ./gradlew build + #bash ./gradlew install -Pgradle_installPath=$out + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/jdk/ant_1_6.nix b/jdk/ant_1_6.nix new file mode 100644 index 0000000..6086eed --- /dev/null +++ b/jdk/ant_1_6.nix @@ -0,0 +1,35 @@ +{stdenv, fetchzip, gnu-classpath_93, jamvm_1_5_1}: stdenv.mkDerivation rec { + pname = "ant"; + version = "1.6.5"; + + src = fetchzip { + url = "https://archive.apache.org/dist/ant/source/apache-ant-1.6.5-src.tar.gz"; + hash = "sha256-UJaFPX3KtFa06B4eDu2ZNMO+GreTtdEYbhGrKr3soUI="; + }; + + #patches = [./mysql.patch]; + + nativeBuildInputs = [gnu-classpath_93 jamvm_1_5_1]; + env = { + JAVA_HOME="${gnu-classpath_93}"; + CLASSPATH="${gnu-classpath_93}/share/classpath/glibj.zip"; + ANT_OPTS="-Dbuild.compiler=jikes"; + }; + + buildPhase = '' + ./build.sh + #bash ./gradlew build + #bash ./gradlew install -Pgradle_installPath=$out + ''; + + installPhase = '' + mkdir $out + cp -r ./dist/* $out/ + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/jdk/ecj.nix b/jdk/ecj.nix new file mode 100644 index 0000000..eb9fff4 --- /dev/null +++ b/jdk/ecj.nix @@ -0,0 +1,35 @@ +{stdenv, fetchzip, ant_1_6, gnu-classpath_93, jamvm_1_5_1, jikes}: stdenv.mkDerivation rec { + pname = "ecj"; + version = "3.2.1"; #Compiler meldet 3.2.1 bei 3.2.2 source + + src = fetchzip { + url = "https://archive.eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-sourceBuild-srcIncluded-3.2.2.zip"; + hash = "sha256-7FYd+SHyJ9FPYBRJIgHW5IgKbF8HhlKMlSXE8oeyuZk="; + stripRoot=false; + }; + + nativeBuildInputs = [ant_1_6 jamvm_1_5_1 jikes]; + + env = { + JAVA_HOME="${gnu-classpath_93}"; + CLASSPATH="${gnu-classpath_93}/share/classpath/glibj.zip"; + ANT_OPTS="-Dbuild.compiler=jikes"; + }; + + buildPhase = '' + cd jdtcoresrc + ant -f compilejdtcorewithjavac.xml + cd .. + ''; + + installPhase = '' + mkdir -p $out/bin + cp -r ./jdtcoresrc/ecj.jar $out/bin/ecj.jar + cat << 'EOF' > $out/bin/ecj +#!/bin/bash +exec ${jamvm_1_5_1}/bin/jamvm -Xmx768M -cp $out/bin/ecj.jar org.eclipse.jdt.internal.compiler.batch.Main "$@" +EOF + sed -i "s|\$out|$out|g" $out/bin/ecj + chmod +x $out/bin/ecj + ''; +} diff --git a/jdk/gnu-classpath.nix b/jdk/gnu-classpath.nix new file mode 100644 index 0000000..e900aff --- /dev/null +++ b/jdk/gnu-classpath.nix @@ -0,0 +1,45 @@ +{stdenv, fetchgit, autoreconfHook, libtool, gnulib, gnu-classpath_98, jamvm_1_5_4, ecj, fastjar, texinfo}: stdenv.mkDerivation rec { + pname = "gnu-classpath"; + version = "0.99"; + + src = fetchgit { + url = "https://git.savannah.gnu.org/git/classpath.git"; + rev = "e7c13ee0cf2005206fbec0eca677f8cf66d5a103"; + hash = "sha256-gQonVt3Ps6LDZV0tNmiRjqIbYaaQwYjpUogu9Y7nLIo="; + deepClone = true; + }; + + patches = [./gnu-classpath.patch]; + + nativeBuildInputs = [autoreconfHook gnu-classpath_98 jamvm_1_5_4 ecj fastjar texinfo]; + + env = { + ACLOCAL_PATH="${libtool}/share/aclocal:${gnulib}/m4"; + }; + + configureFlags = ["--disable-gtk-peer" "--disable-gconf-peer" "--disable-plugin" "--disable-gjdoc" "--with-ecj-jar=${ecj}/bin/ecj.jar"]; + + postPatch = '' + echo "@Override wird gedesed..." + find . -name "*.java" -exec sed -i 's/@Override\s*//g' {} + + ''; + + postInstall = '' + mkdir -p $out/jre/lib + ln -s $out/share/classpath/tools.zip $out/lib/tools.jar + ln -s $out/share/classpath/glibj.zip $out/jre/lib/rt.jar + + cat << 'EOF' > $out/bin/javac +#!/bin/bash +exec ${ecj}/bin/ecj "$@" +EOF + sed -i "s|\$out|$out|g" $out/bin/javac + chmod +x $out/bin/javac + + cat << 'EOF' > $out/bin/java +#!/bin/bash +exec jamvm "$@" +EOF + chmod +x $out/bin/java + ''; +} diff --git a/jdk/gnu-classpath.patch b/jdk/gnu-classpath.patch new file mode 100644 index 0000000..f1c26dd --- /dev/null +++ b/jdk/gnu-classpath.patch @@ -0,0 +1,13 @@ +diff --git a/m4/ac_prog_javac.m4 b/m4/ac_prog_javac.m4 +index 76c98de56..9e310a962 100644 +--- a/m4/ac_prog_javac.m4 ++++ b/m4/ac_prog_javac.m4 +@@ -36,7 +36,7 @@ dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11 + + AC_DEFUN_ONCE([AC_PROG_JAVAC],[ + AC_REQUIRE([AC_EXEEXT])dnl +-ECJ_OPTS="-warn:-deprecation,serial,unusedImport,unusedPrivate,resource" ++ECJ_OPTS="-warn:-deprecation,serial,unusedImport,unusedPrivate" + JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides" + GCJ_OPTS="-g" + if test "x$JAVAPREFIX" = x; then diff --git a/jdk/gnu-classpath_93.nix b/jdk/gnu-classpath_93.nix new file mode 100644 index 0000000..dca2c84 --- /dev/null +++ b/jdk/gnu-classpath_93.nix @@ -0,0 +1,30 @@ +{stdenv, fetchzip, zip, jikes}: stdenv.mkDerivation rec { + pname = "gnu-classpath"; + version = "0.93"; + + src = fetchzip { + url = "ftp.gnu.org/gnu/classpath/classpath-${version}.tar.gz"; + hash = "sha256-dP4lmumUKkOlwWOFHncPnsxR2y3Qr6mE+K3eb+x5zbY="; + }; + + patches = [./gnu-classpath_93.patch]; + + nativeBuildInputs = [jikes zip]; + + env = { + NIX_CFLAGS_COMPILE="-Wno-calloc-transposed-args -Wno-deprecated-declarations -Wno-unused-result -Wno-stringop-truncation -Wno-cast-function-type"; + }; + + configureFlags = ["--disable-gtk-peer" "--disable-gconf-peer" "--disable-plugin"]; + + postInstall = '' + ln -s ${jikes}/bin/jikes $out/bin/jikes + ln -s $out/bin/jikes $out/bin/javac + + cat << 'EOF' > $out/bin/java +#!/bin/bash +exec jamvm "$@" +EOF + chmod +x $out/bin/java + ''; +} diff --git a/jdk/gnu-classpath_93.patch b/jdk/gnu-classpath_93.patch new file mode 100644 index 0000000..75df898 --- /dev/null +++ b/jdk/gnu-classpath_93.patch @@ -0,0 +1,12 @@ +diff --git a/native/fdlibm/dtoa.c b/native/fdlibm/dtoa.c +index 5fb6aae..e710d96 100644 +--- a/native/fdlibm/dtoa.c ++++ b/native/fdlibm/dtoa.c +@@ -28,6 +28,7 @@ + + #include "mprec.h" + #include ++#include + + static int + _DEFUN (quorem, diff --git a/jdk/gnu-classpath_98.nix b/jdk/gnu-classpath_98.nix new file mode 100644 index 0000000..5d329f0 --- /dev/null +++ b/jdk/gnu-classpath_98.nix @@ -0,0 +1,36 @@ +{stdenv, fetchzip, jamvm_1_5_1, ecj, fastjar}: stdenv.mkDerivation rec { + pname = "gnu-classpath"; + version = "0.98"; + + src = fetchzip { + url = "ftp.gnu.org/gnu/classpath/classpath-${version}.tar.gz"; + hash = "sha256-mDwSNFh6KFKHydkoMS5Dl1ti7zUIozixjK6IhLbn5r8="; + }; + + nativeBuildInputs = [jamvm_1_5_1 ecj fastjar]; + + env = { + NIX_CFLAGS_COMPILE="-Wno-stringop-truncation"; + }; + + configureFlags = ["--disable-gtk-peer" "--disable-gconf-peer" "--disable-plugin" "--disable-gjdoc"]; + + /*postInstall = '' + mkdir -p $out/jre/lib + ln -s $out/share/classpath/tools.zip $out/lib/tools.jar + ln -s $out/share/classpath/glibj.zip $out/jre/lib/rt.jar + + cat << 'EOF' > $out/bin/javac +#!/bin/bash +exec ${ecj}/bin/ecj -bootclasspath $out/share/classpath/glibj.zip "$@" +EOF + sed -i "s|\$out|$out|g" $out/bin/javac + chmod +x $out/bin/javac + + cat << 'EOF' > $out/bin/java +#!/bin/bash +exec jamvm "$@" +EOF + chmod +x $out/bin/java + '';*/ +} diff --git a/jdk/jamvm.nix b/jdk/jamvm.nix new file mode 100644 index 0000000..224a38e --- /dev/null +++ b/jdk/jamvm.nix @@ -0,0 +1,20 @@ +{stdenv, fetchzip, zlib, xerces, gnu-classpath, libtool, autoreconfHook}: stdenv.mkDerivation rec { + pname = "jamvm"; + version = "2.0.0"; + + src = fetchzip { + url = "https://master.dl.sourceforge.net/project/${pname}/${pname}/JamVM%20${version}/${pname}-${version}.tar.gz"; + hash = "sha256-FSL2x2C3a3RQ88pRokZQ6dbXcgZFbZLiIZ6MfsFY70Y="; + }; + + patches = [./jamvm.patch]; + + env = { + ACLOCAL_PATH="${libtool}/share/aclocal"; + }; + + nativeBuildInputs = [autoreconfHook]; + buildInputs = [zlib]; + + configureFlags = ["--with-classpath-install-dir=${gnu-classpath}" "--with-extra-classpath=${xerces}/bin/xercesImpl.jar"/*:${xerces}/bin/serializer.jar"*/]; +} diff --git a/jdk/jamvm.patch b/jdk/jamvm.patch new file mode 100644 index 0000000..761c46b --- /dev/null +++ b/jdk/jamvm.patch @@ -0,0 +1,35 @@ +diff --git a/configure.ac b/configure.ac +index 138b7e6..c4445d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -230,6 +230,17 @@ AC_DEFINE_UNQUOTED(CLASSPATH_INSTALL_DIR, "$with_classpath_install_dir", + + AC_SUBST(with_classpath_install_dir) + ++AC_ARG_WITH([extra-classpath], ++ [AS_HELP_STRING([--with-extra-classpath=PATH], ++ [Extra JARs to add to the bootstrap classpath])], ++ [EXTRA_CLASSPATH="$with_extra_classpath"], ++ [EXTRA_CLASSPATH=""]) ++ ++AC_DEFINE_UNQUOTED([EXTRA_CLASSPATH], ["$EXTRA_CLASSPATH"], ++ [Extra JARs to add to the bootstrap classpath]) ++ ++AC_SUBST([EXTRA_CLASSPATH]) ++ + if test "$prefix" = "NONE"; then + install_dir=$ac_default_prefix + else +diff --git a/src/classlib/gnuclasspath/class.c b/src/classlib/gnuclasspath/class.c +index 3661c64..6a12735 100644 +--- a/src/classlib/gnuclasspath/class.c ++++ b/src/classlib/gnuclasspath/class.c +@@ -117,7 +117,7 @@ Class *classlibBootPackagesArrayClass() { + #define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath" + #endif + +-#define DFLT_BCP JAMVM_CLASSES":"CLASSPATH_CLASSES ++#define DFLT_BCP JAMVM_CLASSES":"CLASSPATH_CLASSES":"EXTRA_CLASSPATH + + char *classlibBootClassPathOpt(InitArgs *args) { + char *vm_path = args->bootpath_v != NULL ? args->bootpath_v diff --git a/jdk/jamvm_1_5_1.nix b/jdk/jamvm_1_5_1.nix new file mode 100644 index 0000000..c7f3f46 --- /dev/null +++ b/jdk/jamvm_1_5_1.nix @@ -0,0 +1,14 @@ +{stdenv, fetchzip, zlib, gcc9, gnu-classpath_93}: stdenv.mkDerivation rec { + pname = "jamvm"; + version = "1.5.1"; + + src = fetchzip { + url = "https://master.dl.sourceforge.net/project/${pname}/${pname}/JamVM%20${version}/${pname}-${version}.tar.gz"; + hash = "sha256-tBdFKV5IyQ0XRajdbLasm3wJMy9YUsu5NBoNlVInZSc="; + }; + + nativeBuildInputs = [gcc9]; + buildInputs = [zlib]; + + configureFlags = ["--with-classpath-install-dir=${gnu-classpath_93}"]; +} diff --git a/jdk/jamvm_1_5_4.nix b/jdk/jamvm_1_5_4.nix new file mode 100644 index 0000000..d7a9761 --- /dev/null +++ b/jdk/jamvm_1_5_4.nix @@ -0,0 +1,13 @@ +{stdenv, fetchzip, zlib, gnu-classpath_98}: stdenv.mkDerivation rec { + pname = "jamvm"; + version = "1.5.4"; + + src = fetchzip { + url = "https://master.dl.sourceforge.net/project/${pname}/${pname}/JamVM%20${version}/${pname}-${version}.tar.gz"; + hash = "sha256-IlS8rJKLc80uXDfDeZH+/iVOR0XP83oM3WIAok+DVMs="; + }; + + buildInputs = [zlib]; + + configureFlags = ["--with-classpath-install-dir=${gnu-classpath_98}"]; +} diff --git a/jdk/jdk6-bootstrap.nix b/jdk/jdk6-bootstrap.nix new file mode 100644 index 0000000..8a4fcfc --- /dev/null +++ b/jdk/jdk6-bootstrap.nix @@ -0,0 +1,90 @@ +{stdenv, fetchzip, fetchurl, ant_1_6, gnu-classpath, jamvm, zip, unzip, freetype, pkg-config, perl, which, procps, +alsa-lib, cups, motif, wget, cpio, fastjar, libxslt, xorg, zlib, libjpeg, libpng, giflib, lcms, krb5, breakpointHook}: stdenv.mkDerivation rec { + pname = "jdk"; + version = "1.13.13"; + + src = fetchzip { + url = "https://icedtea.wildebeest.org/download/source/icedtea6-${version}.tar.gz"; + hash = "sha256-7j5Fm+bxpUzrDuI7UOfYsnv7vEc0oGos+AaHr7eKSHQ="; + }; + + jdkSrc = fetchurl { + url = "https://ponce.cc/slackware/sources/repo/openjdk-6-src-b41-04_jan_2017.tar.xz"; + hash = "sha256-jjTUUc7GX66LQwRlEFjtTcjQe9Rbqi9JeAAJCXr8GhU="; + }; + + patches = [./jdk6-bootstrap.patch]; + + nativeBuildInputs = [pkg-config ant_1_6 wget zip unzip cpio fastjar jamvm gnu-classpath libxslt perl which procps]; + buildInputs = [cups.dev zlib.dev libjpeg.dev libpng.dev giflib lcms.dev krb5.dev freetype.dev alsa-lib.dev + xorg.libX11.dev xorg.libXt.dev xorg.libXinerama.dev xorg.libXcomposite.dev xorg.libXrender.dev xorg.libXtst breakpointHook]; + + env = { + # BUILD_CORBA="false"; + # BUILD_JAXP="false"; + BUILD_JAXWS="false"; + # NO_DOCS="true"; + # NO_IMAGES="true"; + DISABLE_HOTSPOT_OS_VERSION_CHECK="ok"; + ALT_FREETYPE_HEADERS_PATH="${freetype.dev}/include"; + ALT_FREETYPE_LIB_PATH="${freetype}/lib"; + ALSA_DIR="${alsa-lib.dev}"; + ALT_CUPS_HEADERS_PATH="${cups.dev}/include"; + # ALT_MOTIF_DIR="${motif}"; + # ALT_BOOTDIR="${gnu-classpath}"; + NIX_CFLAGS_COMPILE="-fpermissive"; + ALT_UNIXCOMMAND_PATH=""; + ALT_USRBIN_PATH=""; + ALT_COMPILER_PATH=""; + ALT_DEVTOOLS_PATH=""; + }; + + #preConfigure = '' + # sed -i "s|/usr/bin/perl|${perl}/bin/perl|g" javac.in + #''; + + prePatch = '' + sed -i "s|/usr/bin/perl|${perl}/bin/perl|g" javac.in + cp ${jdkSrc} ./openjdk-6-src-b41-04_jan_2017.tar.xz + + #Aus Make geklaut + mkdir openjdk + echo "Fette Extraction..." + tar xf openjdk-6-src-b41-04_jan_2017.tar.xz -C openjdk + chmod -R ug+w openjdk + ''; + + postConfigure = '' + sh /build/source/fsg.sh + + sed -i "s|/bin/echo|echo|g" openjdk/jdk/make/common/shared/Defs-utils.gmk + sed -i "s|/bin/echo|echo|g" openjdk/corba/make/common/shared/Defs-utils.gmk + + sed -i "s|\$(BOOTDIR)/bin/rmic \$(JAVA_TOOLS_FLAGS:%=-J%)|\$(BOOTDIR)/bin/befator|g" openjdk/jdk/make/common/shared/Defs-java.gmk + sed -i "s|\$(BOOTDIR)/bin/rmic \$(JAVA_TOOLS_FLAGS:%=-J%)|\$(BOOTDIR)/bin/befator2|g" openjdk/corba/make/common/shared/Defs-java.gmk + + sed -i "s|/usr/include/alsa/version.h|\$(ALSA_DIR)/include/alsa/version.h|g" openjdk/jdk/make/common/shared/Sanity.gmk + sed -i "s|/usr/lib/libasound.so|\$(ALSA_DIR)/lib/libasound.so|g" openjdk/jdk/make/common/shared/Sanity.gmk + + sed -i "s|FREETYPE_MAJOR, FREETYPE_MINOR, FREETYPE_PATCH);|FREETYPE_MAJOR, FREETYPE_MINOR > 9 ? 9 : FREETYPE_MINOR, FREETYPE_PATCH);|g" openjdk/jdk/make/tools/freetypecheck/freetypecheck.c + sed -i "s|major, minor, patch);|major, minor > 9 ? 9 : minor, patch);|g" openjdk/jdk/make/tools/freetypecheck/freetypecheck.c + ''; + + #buildPhase = '' + # make + # #./build.sh + # #bash ./gradlew build + # #bash ./gradlew install -Pgradle_installPath=$out + #''; + + #installPhase = '' + # mkdir $out + # cp -r ./dist/* $out/ + #''; + + configureFlags = ["--with-ecj" "--with-java=${jamvm}/bin/jamvm" "--with-jdk-home=${gnu-classpath}" "--without-rhino" "--disable-downloading" "--disable-tests" "--enable-nss"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/jdk/jdk6-bootstrap.patch b/jdk/jdk6-bootstrap.patch new file mode 100644 index 0000000..040ef5e --- /dev/null +++ b/jdk/jdk6-bootstrap.patch @@ -0,0 +1,20 @@ +diff --git a/openjdk/corba/make/common/Defs.gmk b/openjdk/corba/make/common/Defs.gmk +index 5086d805..17e8fcfa 100644 +--- a/openjdk/corba/make/common/Defs.gmk ++++ b/openjdk/corba/make/common/Defs.gmk +@@ -385,6 +385,7 @@ define SUBDIRS-loop + timing_id="$(TIMING_ID)-`$(BASENAME) $${i}`"; \ + $(call TIMING_start,startTime); \ + curDir=$(CURRENT_DIRECTORY); \ ++ $(ECHO) "$(MAKE) $@ TIMING_ID=$${timing_id} $(SUBDIRS_MAKEFLAGS) $(SUBDIRS_MAKEFLAGS-$@) FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE)"; \ + $(CD) $$i; $(MAKE) $@ TIMING_ID=$${timing_id} \ + $(SUBDIRS_MAKEFLAGS) \ + $(SUBDIRS_MAKEFLAGS-$@) \ +@@ -408,6 +409,7 @@ define OTHERSUBDIRS-loop + timing_id="$(TIMING_ID)-`$(BASENAME) $${i}`"; \ + $(call TIMING_start,startTime); \ + curDir=$(CURRENT_DIRECTORY); \ ++ $(ECHO) "$(MAKE) $@ TIMING_ID=$${timing_id} $(SUBDIRS_MAKEFLAGS) $(SUBDIRS_MAKEFLAGS-$@) FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE)"; \ + $(CD) $$i; $(MAKE) $@ TIMING_ID=$${timing_id} \ + $(OTHERSUBDIRS_MAKEFLAGS) \ + FULL_VERSION=$(FULL_VERSION) \ diff --git a/jdk/jdk6.nix b/jdk/jdk6.nix new file mode 100644 index 0000000..b3aefd7 --- /dev/null +++ b/jdk/jdk6.nix @@ -0,0 +1,51 @@ +{stdenv, fetchFromGitHub, ant_1_6, gnu-classpath, jamvm, coreutils, which, toybox, zip, unzip, freetype, +alsa-lib, cups, motif, breakpointHook}: stdenv.mkDerivation rec { + pname = "jdk"; + version = "6.0.49"; + + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jdk6"; + rev = "jdk6-b49"; + hash = "sha256-TybvQmzFOH0Kxcr+ay4g41pGyV0alWXp59AXKmJ7CWo="; + }; + + patches = [./jdk6.patch]; + + nativeBuildInputs = [ant_1_6 coreutils which toybox jamvm]; + buildInputs = [zip unzip freetype alsa-lib breakpointHook motif]; + + env = { + BUILD_CORBA="false"; + BUILD_JAXP="false"; + BUILD_JAXWS="false"; + NO_DOCS="true"; + NO_IMAGES="true"; + DISABLE_HOTSPOT_OS_VERSION_CHECK="ok"; + ALT_FREETYPE_HEADERS_PATH="${freetype.dev}/include"; + ALT_FREETYPE_LIB_PATH="${freetype}/lib"; + ALSA_DIR="${alsa-lib.dev}"; + ALT_CUPS_HEADERS_PATH="${cups.dev}/include"; + ALT_MOTIF_DIR="${motif}"; + ALT_BOOTDIR="${gnu-classpath}"; + NIX_CFLAGS_COMPILE="-Wno-format-overflow"; + }; + + buildPhase = '' + make + #./build.sh + #bash ./gradlew build + #bash ./gradlew install -Pgradle_installPath=$out + ''; + + #installPhase = '' + # mkdir $out + # cp -r ./dist/* $out/ + #''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/jdk/jdk6.patch b/jdk/jdk6.patch new file mode 100644 index 0000000..03297e8 --- /dev/null +++ b/jdk/jdk6.patch @@ -0,0 +1,205 @@ +diff --git a/corba/make/common/shared/Defs-linux.gmk b/corba/make/common/shared/Defs-linux.gmk +index c9b931f6..57008bda 100644 +--- a/corba/make/common/shared/Defs-linux.gmk ++++ b/corba/make/common/shared/Defs-linux.gmk +@@ -61,7 +61,7 @@ USRJDKINSTANCES_PATH =/opt/java + ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined" + UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH)) + else +- UNIXCOMMAND_PATH = /bin/ ++ UNIXCOMMAND_PATH = + endif + + # USRBIN_PATH: path to where the most common Unix commands are. +@@ -69,7 +69,7 @@ endif + ifneq "$(origin ALT_USRBIN_PATH)" "undefined" + USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH)) + else +- USRBIN_PATH = /usr/bin/ ++ USRBIN_PATH = + endif + + # UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found +@@ -99,7 +99,7 @@ endif + ifneq "$(origin ALT_COMPILER_PATH)" "undefined" + COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH)) + else +- COMPILER_PATH =/usr/bin/ ++ COMPILER_PATH = + endif + + # DEVTOOLS_PATH: for other tools required for building (such as zip, etc.) +@@ -107,7 +107,7 @@ endif + ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined" + DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH)) + else +- DEVTOOLS_PATH =/usr/bin/ ++ DEVTOOLS_PATH = + endif + + # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK. +diff --git a/corba/make/common/shared/Defs-utils.gmk b/corba/make/common/shared/Defs-utils.gmk +index e098af76..92b6861d 100644 +--- a/corba/make/common/shared/Defs-utils.gmk ++++ b/corba/make/common/shared/Defs-utils.gmk +@@ -178,7 +178,7 @@ ifeq ($(PLATFORM),linux) + $(wildcard $(UTILS_USR_BIN_PATH)sort)) + NAWK = $(USRBIN_PATH)gawk + # Intrinsic unix command, with backslash-escaped character interpretation +- ECHO = /bin/echo -e ++ ECHO = echo -e + # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not) + AR = $(UTILS_USR_BIN_PATH)ar + AS = $(UTILS_USR_BIN_PATH)as +diff --git a/corba/make/sun/rmi/corbalogsources/Makefile b/corba/make/sun/rmi/corbalogsources/Makefile +index 25ca911f..81c83b6b 100644 +--- a/corba/make/sun/rmi/corbalogsources/Makefile ++++ b/corba/make/sun/rmi/corbalogsources/Makefile +@@ -82,7 +82,11 @@ MC_CLASSPATH=$(BUILDTOOLJARDIR)/MC.jar + MCJ_GENERATE_CLASS = $(BOOT_JAVA_CMD) \ + -cp "$(MC_CLASSPATH)" com.sun.tools.corba.se.logutil.MC $(MC_GENERATE_CLASS) + MCJ_GENERATE_LOG_RB = $(BOOT_JAVA_CMD) \ +- -cp "$(MC_CLASSPATH)" com.sun.tools.corba.se.logutil.MC $(MC_GENERATE_LOG_RB) ++ -cp "$(MC_CLASSPATH)" com.sun.tools.corba.se.logutil.MC $(MC_GENERATE_LOG_RB) ++ ++IDLJ_CLASSPATH=$(BUILDTOOLJARDIR)/idlj.jar:$(BUILDTOOLJARDIR)/../btclasses/ ++IDLJ = $(BOOT_JAVA_CMD) \ ++ -cp "$(IDLJ_CLASSPATH)" com.sun.tools.corba.se.idl.toJavaPortable.Compile + + + # +diff --git a/hotspot/make/linux/Makefile b/hotspot/make/linux/Makefile +index 67751af3..dc5d6820 100644 +--- a/hotspot/make/linux/Makefile ++++ b/hotspot/make/linux/Makefile +@@ -249,7 +249,6 @@ check_j2se_version: + $(REMOTE) $(RUN.JAVA) -version; \ + echo "*** An XSLT processor (J2SE 1.4.x or newer) is required" \ + "to bootstrap this build" 1>&2; \ +- exit 1; \ + fi + + $(SUBDIRS_TIERED): $(BUILDTREE_MAKE) +diff --git a/jdk/make/common/shared/Defs-linux.gmk b/jdk/make/common/shared/Defs-linux.gmk +index 12d8e13b..e12231c5 100644 +--- a/jdk/make/common/shared/Defs-linux.gmk ++++ b/jdk/make/common/shared/Defs-linux.gmk +@@ -77,7 +77,7 @@ USRJDKINSTANCES_PATH =/opt/java + ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined" + UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH)) + else +- UNIXCOMMAND_PATH = /bin/ ++ UNIXCOMMAND_PATH = + endif + + # USRBIN_PATH: path to where the most common Unix commands are. +@@ -85,7 +85,7 @@ endif + ifneq "$(origin ALT_USRBIN_PATH)" "undefined" + USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH)) + else +- USRBIN_PATH = /usr/bin/ ++ USRBIN_PATH = + endif + + # UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found +@@ -115,7 +115,7 @@ endif + ifneq "$(origin ALT_COMPILER_PATH)" "undefined" + COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH)) + else +- COMPILER_PATH =/usr/bin/ ++ COMPILER_PATH = + endif + + # DEVTOOLS_PATH: for other tools required for building (such as zip, etc.) +@@ -123,7 +123,7 @@ endif + ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined" + DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH)) + else +- DEVTOOLS_PATH =/usr/bin/ ++ DEVTOOLS_PATH = + endif + + # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK. +diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk +index b44f1efe..5bbc050e 100644 +--- a/jdk/make/common/shared/Defs-utils.gmk ++++ b/jdk/make/common/shared/Defs-utils.gmk +@@ -180,7 +180,7 @@ ifeq ($(PLATFORM),linux) + + NAWK = $(USRBIN_PATH)gawk + # Intrinsic unix command, with backslash-escaped character interpretation +- ECHO = /bin/echo -e ++ ECHO = echo -e + # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not) + AR = $(UTILS_USR_BIN_PATH)ar + AS = $(UTILS_USR_BIN_PATH)as +diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk +index 64d5f442..1bd0695e 100644 +--- a/jdk/make/common/shared/Sanity.gmk ++++ b/jdk/make/common/shared/Sanity.gmk +@@ -108,8 +108,8 @@ ifeq ($(PLATFORM), linux) + if [ "$(OS_VARIANT_NAME)" = "Fedora" ] ; then \ + $(CAT) /etc/fedora-release | $(HEAD) -1 | $(NAWK) '{ print $$3; }' ; \ + fi) +- ALSA_INCLUDE=/usr/include/alsa/version.h +- ALSA_LIBRARY=/usr/lib/libasound.so ++ ALSA_INCLUDE=$(ALSA_DIR)/include/alsa/version.h ++ ALSA_LIBRARY=$(ALSA_DIR)/lib/libasound.so + _ALSA_VERSION := $(shell $(EGREP) SND_LIB_VERSION_STR $(ALSA_INCLUDE) | \ + $(SED) -e 's@.*\"\(.*\)\".*@\1@' ) + ALSA_VERSION := $(call GetVersion,$(_ALSA_VERSION)) +diff --git a/jdk/make/tools/freetypecheck/freetypecheck.c b/jdk/make/tools/freetypecheck/freetypecheck.c +index 1e7d5494..b6606acc 100644 +--- a/jdk/make/tools/freetypecheck/freetypecheck.c ++++ b/jdk/make/tools/freetypecheck/freetypecheck.c +@@ -36,7 +36,7 @@ int main(int argc, char** argv) { + char v[50]; + FT_Int major, minor, patch; + FT_Library library; +- sprintf(v, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR, FREETYPE_PATCH); ++ sprintf(v, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR > 9 ? 9 : FREETYPE_MINOR, FREETYPE_PATCH); + + printf("Required version of freetype: %s\n", + QUOTEMACRO(REQUIRED_FREETYPE_VERSION)); +@@ -48,7 +48,7 @@ int main(int argc, char** argv) { + + FT_Init_FreeType(&library); + FT_Library_Version(library, &major, &minor, &patch); +- sprintf(v, "%d.%d.%d", major, minor, patch); ++ sprintf(v, "%d.%d.%d", major, minor > 9 ? 9 : minor, patch); + + printf("Detected freetype library: %s\n", v); + if (strcmp(v, QUOTEMACRO(REQUIRED_FREETYPE_VERSION)) < 0) { +diff --git a/langtools/make/build.xml b/langtools/make/build.xml +index 9b6c1731..3240b152 100644 +--- a/langtools/make/build.xml ++++ b/langtools/make/build.xml +@@ -525,7 +525,6 @@ + source="@{javac.source}" + target="@{javac.target}"> + +- + + + + + +- +- + + + +diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java b/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java +index 24de0d6c..036dd680 100644 +--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java ++++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocImpl.java +@@ -103,7 +103,6 @@ public abstract class DocImpl implements Doc, Comparable { + String d = documentation(); + if (env.javaScriptScanner != null) { + env.javaScriptScanner.parse(d, new JavaScriptScanner.Reporter() { +- @Override + public void report() { + env.error(DocImpl.this, "javadoc.JavaScript_in_comment"); + throw new FatalError(); diff --git a/jdk/jdk7.patch b/jdk/jdk7.patch new file mode 100644 index 0000000..047fcf0 --- /dev/null +++ b/jdk/jdk7.patch @@ -0,0 +1,103 @@ +diff --git a/jdk/make/common/shared/Defs-linux.gmk b/jdk/make/common/shared/Defs-linux.gmk +index ecdf5d77..405e686d 100644 +--- a/jdk/make/common/shared/Defs-linux.gmk ++++ b/jdk/make/common/shared/Defs-linux.gmk +@@ -61,7 +61,7 @@ USRJDKINSTANCES_PATH =/opt/java + ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined" + UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH)) + else +- UNIXCOMMAND_PATH = /bin/ ++ UNIXCOMMAND_PATH = + endif + + # USRBIN_PATH: path to where the most common Unix commands are. +@@ -69,7 +69,7 @@ endif + ifneq "$(origin ALT_USRBIN_PATH)" "undefined" + USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH)) + else +- USRBIN_PATH = /usr/bin/ ++ USRBIN_PATH = + endif + + # UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found +@@ -99,7 +99,7 @@ endif + ifneq "$(origin ALT_COMPILER_PATH)" "undefined" + COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH)) + else +- COMPILER_PATH =/usr/bin/ ++ COMPILER_PATH = + endif + + # OPENWIN_HOME: path to where the X11 environment is installed. +@@ -115,7 +115,7 @@ endif + ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined" + DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH)) + else +- DEVTOOLS_PATH =/usr/bin/ ++ DEVTOOLS_PATH = + endif + + # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK. +diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk +index 1cebe93c..1cf22ebf 100644 +--- a/jdk/make/common/shared/Defs-utils.gmk ++++ b/jdk/make/common/shared/Defs-utils.gmk +@@ -197,7 +197,7 @@ ifeq ($(PLATFORM),linux) + $(wildcard $(UTILS_USR_BIN_PATH)sort)) + NAWK = $(USRBIN_PATH)gawk + # Intrinsic unix command, with backslash-escaped character interpretation +- ECHO = /bin/echo -e ++ ECHO = echo -e + # These are really in UTILS_USR_BIN_PATH on Linux + ifndef CROSS_COMPILE_ARCH + AR = $(UTILS_USR_BIN_PATH)ar +diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk +index 1dbedb17..bcb59d8f 100644 +--- a/jdk/make/common/shared/Sanity.gmk ++++ b/jdk/make/common/shared/Sanity.gmk +@@ -106,8 +106,8 @@ ifeq ($(PLATFORM), linux) + elif [ -f /etc/lsb-release ] ; then \ + $(EGREP) DISTRIB_RELEASE /etc/lsb-release | $(SED) -e 's@.*DISTRIB_RELEASE=\(.*\)@\1@'; \ + fi) +- ALSA_INCLUDE=/usr/include/alsa/version.h +- ALSA_LIBRARY=/usr/lib/libasound.so ++ ALSA_INCLUDE=$(ALSA_DIR)/include/alsa/version.h ++ ALSA_LIBRARY=$(ALSA_DIR)/lib/libasound.so + _ALSA_VERSION := $(shell $(EGREP) SND_LIB_VERSION_STR $(ALSA_INCLUDE) | \ + $(SED) -e 's@.*"\(.*\)".*@\1@' ) + ALSA_VERSION := $(call GetVersion,$(_ALSA_VERSION)) +diff --git a/jdk/make/tools/freetypecheck/freetypecheck.c b/jdk/make/tools/freetypecheck/freetypecheck.c +index d91a0add..38b76bf3 100644 +--- a/jdk/make/tools/freetypecheck/freetypecheck.c ++++ b/jdk/make/tools/freetypecheck/freetypecheck.c +@@ -78,7 +78,7 @@ int main(int argc, char** argv) { + char v[50]; + FT_Int major, minor, patch; + FT_Library library; +- sprintf(v, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR, FREETYPE_PATCH); ++ sprintf(v, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR > 9 ? 9 : FREETYPE_MINOR, FREETYPE_PATCH); + + printf("Required version of freetype: %s\n", + QUOTEMACRO(REQUIRED_FREETYPE_VERSION)); +@@ -90,7 +90,7 @@ int main(int argc, char** argv) { + + FT_Init_FreeType(&library); + FT_Library_Version(library, &major, &minor, &patch); +- sprintf(v, "%d.%d.%d", major, minor, patch); ++ sprintf(v, "%d.%d.%d", major, minor > 9 ? 9 : minor, patch); + + printf("Detected freetype library: %s\n", v); + if (strcmp(v, QUOTEMACRO(REQUIRED_FREETYPE_VERSION)) < 0) { +diff --git a/langtools/make/build.properties b/langtools/make/build.properties +index 5c4ad09c..e5a969c0 100644 +--- a/langtools/make/build.properties ++++ b/langtools/make/build.properties +@@ -68,7 +68,7 @@ javac.no.jdk.warnings = -XDignore.symbol.file=true + # set the following to -version to verify the versions of javac being used + javac.version.opt = + # in time, there should be no exceptions to -Xlint:all +-javac.lint.opts = -Xlint:all,-deprecation -Werror ++javac.lint.opts = -Xlint:all,-deprecation,-overrides -Werror + + # options for the task for javac + #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ diff --git a/jdk/jikes.nix b/jdk/jikes.nix new file mode 100644 index 0000000..872d5d3 --- /dev/null +++ b/jdk/jikes.nix @@ -0,0 +1,9 @@ +{stdenv, fetchzip}: stdenv.mkDerivation rec { + pname = "jikes"; + version = "1.22"; + + src = fetchzip { + url = "https://master.dl.sourceforge.net/project/${pname}/Jikes/${version}/${pname}-${version}.tar.bz2"; + hash = "sha256-58FRyopZ855cyradP+Qa5fEHsMAUHBiCi+1eOzZZK/o="; + }; +} diff --git a/jdk/xalan.nix b/jdk/xalan.nix new file mode 100644 index 0000000..5bef2f5 --- /dev/null +++ b/jdk/xalan.nix @@ -0,0 +1,29 @@ +{stdenv, fetchFromGitHub, ant_1_6, gnu-classpath_93, jamvm_1_5_1, ecj}: stdenv.mkDerivation rec { + pname = "xalan"; + version = "2.7.1"; + + src = fetchFromGitHub { + owner = "apache"; + repo = "xalan-java"; + rev = "xalan-j_2_7_1"; + hash = "sha256-lanJNBOawKdBarXmDFzW5R1DuEtl/EC+4cxMxvvCJdk="; + }; + + nativeBuildInputs = [ant_1_6 jamvm_1_5_1]; + + env = { + JAVA_HOME="${gnu-classpath_93}"; + CLASSPATH="${ecj}/bin/ecj.jar"; + ANT_OPTS="-Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter"; + }; + + buildPhase = '' + ant + ''; + + installPhase = '' + mkdir -p $out/bin + cp -r ./build/xalan.jar $out/bin/xalan.jar + cp -r ./build/serializer.jar $out/bin/serializer.jar + ''; +} diff --git a/jdk/xerces.nix b/jdk/xerces.nix new file mode 100644 index 0000000..f716911 --- /dev/null +++ b/jdk/xerces.nix @@ -0,0 +1,31 @@ +{stdenv, fetchFromGitHub, ant_1_6, gnu-classpath_93, jamvm_1_5_1, ecj, breakpointHook}: stdenv.mkDerivation rec { + pname = "xerces"; + version = "2.7.1"; + + src = fetchFromGitHub { + owner = "apache"; + repo = "xerces-j"; + rev = "4a19c3c7c6a432f1a1ae014f0a15b9eb7c58749e"; + hash = "sha256-TytmgIGVGOLVln3fB/DuxdXkfva34hJbEiV7TFJiHr4="; + }; + + patches = [./xerces.patch]; + + nativeBuildInputs = [ant_1_6 jamvm_1_5_1]; + buildInputs = [breakpointHook]; + + env = { + JAVA_HOME="${gnu-classpath_93}"; + CLASSPATH="${ecj}/bin/ecj.jar"; + ANT_OPTS="-Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter -Dbootclasspath=${gnu-classpath_93}/share/classpath/glibj.zip"; + }; + + buildPhase = '' + ant jar + ''; + + installPhase = '' + mkdir -p $out/bin + cp -r ./build/xercesImpl.jar $out/bin/xercesImpl.jar + ''; +} diff --git a/jdk/xerces.patch b/jdk/xerces.patch new file mode 100644 index 0000000..ead369c --- /dev/null +++ b/jdk/xerces.patch @@ -0,0 +1,60 @@ +diff --git a/build.xml b/build.xml +index 06f5f37..63c1271 100644 +--- a/build.xml ++++ b/build.xml +@@ -268,6 +268,7 @@ Authors: + org/w3c/dom/ranges/** + org/w3c/dom/traversal/** + org/w3c/dom/xpath/**" ++ bootclasspath="${bootclasspath}" + /> + + +@@ -319,7 +320,8 @@ Authors: + classpath="${build.dir}/classes:${tools.dir}/${jar.apis}" + debug="${debug}" + includeAntRuntime="false" +- includeJavaRuntime="true"/> ++ includeJavaRuntime="true" ++ bootclasspath="${bootclasspath}"/> + + + +@@ -336,7 +338,8 @@ Authors: + classpath="${tools.dir}/${jar.apis}:${build.dir}/classes:./tools/junit.jar" + debug="${debug}" + includeAntRuntime="false" +- includeJavaRuntime="true"/> ++ includeJavaRuntime="true" ++ bootclasspath="${bootclasspath}"/> + + + +@@ -961,7 +964,8 @@ Authors: + optimize="${optimize}" + includeAntRuntime="false" + includeJavaRuntime="true" +- classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}"/> ++ classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}" ++ bootclasspath="${bootclasspath}"/> + + + +@@ -1258,7 +1262,8 @@ Authors: + deprecation="${deprecation}" + optimize="${optimize}" + includeAntRuntime="false" +- includeJavaRuntime="true"/> ++ includeJavaRuntime="true" ++ bootclasspath="${bootclasspath}"/> + + + +@@ -1415,6 +1420,7 @@ Authors: + org/w3c/dom/ranges/** + org/w3c/dom/traversal/** + org/w3c/dom/xpath/**" ++ bootclasspath="${bootclasspath}" + /> + + diff --git a/junit.nix b/junit.nix new file mode 100644 index 0000000..d439264 --- /dev/null +++ b/junit.nix @@ -0,0 +1,36 @@ +{stdenv, fetchFromGitHub, jdk6, ant_1_6}: stdenv.mkDerivation rec { + pname = "junit"; + version = "4.0.0"; + + src = fetchFromGitHub { + owner = "junit-team"; + repo = pname; + rev = "5139a1be36da4ed64a860de82e7d74f2e5405037"; + hash = "sha256-ZDu3rQ5y0D7pREmnJjUwiWDbTv+TgJPMZjJ4LVczoLU="; + }; + + patches = [./junit.patch]; + + nativeBuildInputs = [jdk6 ant_1_6]; + #env = { + # ACLOCAL_PATH="${libtool}/share/aclocal"; + # NIX_CFLAGS_COMPILE="-fpermissive"; + #}; + + buildPhase = '' + ant + #bash ./gradlew build + #bash ./gradlew install -Pgradle_installPath=$out + ''; + + installPhase = '' + mkdir $out + cp -r ./junit4.1/* $out/ + ''; + + #configureFlags = ["--with-plugins=innobase"]; + + #postInstall = '' + # ln -s $out/libexec/mysqld $out/bin/mysqld + #''; +} diff --git a/junit.patch b/junit.patch new file mode 100644 index 0000000..75ab9ca --- /dev/null +++ b/junit.patch @@ -0,0 +1,12 @@ +diff --git a/org/junit/tests/AllTests.java b/org/junit/tests/AllTests.java +index 527f059..86472fd 100644 +--- a/org/junit/tests/AllTests.java ++++ b/org/junit/tests/AllTests.java +@@ -38,7 +38,6 @@ import org.junit.runners.Suite.SuiteClasses; + SortableTest.class, + OldTestClassRunnerTest.class, + JUnitCoreTest.class, +- InaccessibleBaseClassTest.class, + TestClassMethodsRunnerTest.class + }) + public class AllTests { diff --git a/overlay.nix b/overlay.nix index 9f345f9..d650e6f 100644 --- a/overlay.nix +++ b/overlay.nix @@ -66,14 +66,22 @@ bommels = pkgs.lib.makeScope pkgs.newScope (self: rec { django-jinja = self.callPackage ./django-jinja.nix { inherit django jinja2; }; django-cache-machine = self.callPackage ./django-cache-machine.nix { inherit django; }; django-multidb-router = self.callPackage ./django-multidb-router.nix { inherit django; }; + django-cors-headers-multi = self.callPackage ./django-cors-headers-multi.nix { inherit django; }; + django-tables2 = self.callPackage ./django-tables2.nix { inherit django; }; + drf-nested-routers = self.callPackage ./drf-nested-routers.nix { inherit django django-rest-framework; }; nobot = self.callPackage ./nobot.nix { inherit django requests six; }; - lxml = self.callPackage ./lxml.nix { }; dockerflow = self.callPackage ./dockerflow.nix { }; python-memcached = self.callPackage ./python-memcached.nix { }; flufl-lock = self.callPackage ./flufl-lock.nix { }; - signing-clients = self.callPackage ./signing-clients.nix { inherit asn1crypto six; }; mozilla-logger = self.callPackage ./mozilla-logger.nix { }; + schematic = self.callPackage ./schematic.nix { }; + email-reply-parser = self.callPackage ./email-reply-parser.nix { }; + redis = self.callPackage ./redis.nix { }; + + mysqlclient = self.callPackage ./mysqlclient.nix { inherit mysql; }; + bleach = self.callPackage ./bleach.nix { inherit html5lib; }; + signing-clients = self.callPackage ./signing-clients.nix { inherit asn1crypto six; }; pyOpenSSL = self.callPackage ./pyOpenSSL.nix { inherit six cryptography; }; isodate = self.callPackage ./isodate.nix { }; @@ -91,10 +99,6 @@ bommels = pkgs.lib.makeScope pkgs.newScope (self: rec { statsd = self.callPackage ./statsd.nix { }; django-statsd-mozilla = self.callPackage ./django-statsd-mozilla.nix { inherit statsd; }; - elasticsearch = self.callPackage ./elasticsearch.nix { inherit urllib3; }; - mysqlclient = self.callPackage ./mysqlclient.nix { inherit mysql; }; - bleach = self.callPackage ./bleach.nix { inherit html5lib; }; - olefile = self.callPackage ./olefile.nix { }; pillow = self.callPackage ./pillow.nix { inherit olefile; }; easy-thumbnails = self.callPackage ./easy-thumbnails.nix { inherit pillow django; }; @@ -123,11 +127,39 @@ bommels = pkgs.lib.makeScope pkgs.newScope (self: rec { billiard = self.callPackage ./billiard.nix { }; celery = self.callPackage ./celery.nix { inherit kombu pytz billiard; }; - service2 = pkgs.callPackage ./runService2.nix { inherit mysql django lxml django-environ django-session-csrf + cssselect = self.callPackage ./cssselect.nix { }; + lxml = self.callPackage ./lxml.nix { }; + pyquery = self.callPackage ./pyquery.nix { inherit cssselect lxml; }; + + elasticsearch = self.callPackage ./elasticsearch.nix { inherit urllib3; }; + python-dateutil = self.callPackage ./python-dateutil.nix { inherit six; }; + elasticsearch-dsl = self.callPackage ./elasticsearch-dsl.nix { inherit elasticsearch six python-dateutil; }; + + #motif = self.callPackage ./motif.nix { }; + jikes = self.callPackage ./jdk/jikes.nix { }; + gnu-classpath_93 = self.callPackage ./jdk/gnu-classpath_93.nix { inherit jikes; }; + jamvm_1_5_1 = self.callPackage ./jdk/jamvm_1_5_1.nix { inherit gnu-classpath_93; }; + ant_1_6 = self.callPackage ./jdk/ant_1_6.nix { inherit gnu-classpath_93 jamvm_1_5_1; }; + ecj = self.callPackage ./jdk/ecj.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 jikes; }; + xalan = self.callPackage ./jdk/xalan.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; + xerces = self.callPackage ./jdk/xerces.nix { inherit ant_1_6 gnu-classpath_93 jamvm_1_5_1 ecj; }; + gnu-classpath_98 = self.callPackage ./jdk/gnu-classpath_98.nix { inherit ecj jamvm_1_5_1; }; + jamvm_1_5_4 = self.callPackage ./jdk/jamvm_1_5_4.nix { inherit gnu-classpath_98; }; + gnu-classpath = self.callPackage ./jdk/gnu-classpath.nix { inherit autoreconfHook ecj jamvm_1_5_4 gnu-classpath_98; }; + jamvm = self.callPackage ./jdk/jamvm.nix { inherit gnu-classpath xerces autoreconfHook; }; + jdk6 = self.callPackage ./jdk/jdk6-bootstrap.nix { inherit ant_1_6 gnu-classpath jamvm; }; + junit = self.callPackage ./junit.nix { inherit ant_1_6 jdk6; }; + ant = self.callPackage ./ant.nix { inherit junit; }; + gradle_0_0_2 = self.callPackage ./gradle_0_0_2.nix { inherit ant; }; + gradle = self.callPackage ./gradle.nix { inherit gradle_0_0_2; }; + elasticsearch-service = self.callPackage ./elasticsearch-service.nix { inherit gradle; }; + + service2 = pkgs.callPackage ./runService2.nix { inherit mysql django django-environ django-session-csrf django-mozilla-product-details dockerflow django-csp django-aesfield django-extensions raven django-rest-framework django-waffle - jingo-minify django-jinja puente django-statsd-mozilla django-cache-machine python-memcached elasticsearch django-multidb-router + jingo-minify django-jinja puente django-statsd-mozilla django-cache-machine python-memcached django-multidb-router mysqlclient bleach easy-thumbnails amo-validator flufl-lock signing-clients mozilla-logger pyOpenSSL django-rest-framework-jwt - celery nobot; }; + celery nobot pyquery schematic django-cors-headers-multi elasticsearch-dsl email-reply-parser django-tables2 redis + drf-nested-routers elasticsearch-service; }; #some-package = pkgs.callPackage ./some-package.nix { inherit pythonPackages; }; }); diff --git a/pyquery.nix b/pyquery.nix new file mode 100644 index 0000000..6568812 --- /dev/null +++ b/pyquery.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, cssselect, lxml}: python27Packages.buildPythonPackage rec { + pname = "pyquery"; + version = "1.2.17"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-aqATOzDZoCKa1l06dwjE6FO/RoCPs1nQbKVvUDkQKvY="; + }; + + propagatedBuildInputs = [python27Packages.setuptools cssselect lxml]; +} diff --git a/python-dateutil.nix b/python-dateutil.nix new file mode 100644 index 0000000..620abfd --- /dev/null +++ b/python-dateutil.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages, six}: python27Packages.buildPythonPackage rec { + pname = "python-dateutil"; + version = "2.6.1"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-iRw4sqAvW7G+PkeThmyN9Jx9Gbqr+cG61iVH4LSGaso="; + }; + + propagatedBuildInputs = [python27Packages.setuptools six]; +} diff --git a/redis.nix b/redis.nix new file mode 100644 index 0000000..39c93d1 --- /dev/null +++ b/redis.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages}: python27Packages.buildPythonPackage rec { + pname = "redis"; + version = "2.10.5"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-Xfuuas/FTt8KekFbmeCyHAo8J6f3h7KS7qcnsfrMVTM="; + }; + + propagatedBuildInputs = [python27Packages.setuptools]; +} diff --git a/runService2.nix b/runService2.nix index e078ddb..96216ff 100644 --- a/runService2.nix +++ b/runService2.nix @@ -1,18 +1,21 @@ -{stdenv, writeShellApplication, git, gnumake, mysql, python27, django, lxml, django-environ, django-session-csrf, +{stdenv, writeShellApplication, git, gnumake, mysql, python27, django, django-environ, django-session-csrf, django-mozilla-product-details, dockerflow, django-csp, django-aesfield, django-extensions, raven, django-rest-framework, -django-waffle, jingo-minify, django-jinja, puente, django-statsd-mozilla, django-cache-machine, python-memcached, elasticsearch, +django-waffle, jingo-minify, django-jinja, puente, django-statsd-mozilla, django-cache-machine, python-memcached, django-multidb-router, mysqlclient, bleach, easy-thumbnails, amo-validator, flufl-lock, signing-clients, mozilla-logger, -pyOpenSSL, django-rest-framework-jwt, celery, nobot}: writeShellApplication rec { +pyOpenSSL, django-rest-framework-jwt, celery, nobot, pyquery, schematic, django-cors-headers-multi, +elasticsearch-dsl, email-reply-parser, django-tables2, redis, drf-nested-routers, nodejs_20, +elasticsearch-service}: writeShellApplication rec { name = "service2"; #propagatedBuildInputs = [python26Packages.setuptools]; #nativeBuildInputs = [ jinja2 ]; #buildInputs = [ jinja2 ]; - runtimeInputs = [git gnumake mysql (python27.withPackages(ps: [django lxml django-environ django-session-csrf django-mozilla-product-details - dockerflow django-csp django-aesfield django-extensions raven django-rest-framework django-waffle jingo-minify django-jinja - puente django-statsd-mozilla django-cache-machine python-memcached elasticsearch django-multidb-router mysqlclient bleach - easy-thumbnails amo-validator flufl-lock signing-clients mozilla-logger pyOpenSSL django-rest-framework-jwt celery nobot]))]; + runtimeInputs = [git gnumake mysql nodejs_20 elasticsearch-service (python27.withPackages(ps: [django django-environ django-session-csrf + django-mozilla-product-details dockerflow django-csp django-aesfield django-extensions raven django-rest-framework django-waffle + jingo-minify django-jinja puente django-statsd-mozilla django-cache-machine python-memcached django-multidb-router mysqlclient + bleach easy-thumbnails amo-validator flufl-lock signing-clients mozilla-logger pyOpenSSL django-rest-framework-jwt celery nobot + pyquery schematic django-cors-headers-multi elasticsearch-dsl email-reply-parser django-tables2 redis drf-nested-routers]))]; #env = { # NIX_CFLAGS_COMPILE="-Wno-incompatible-pointer-types"; @@ -26,7 +29,34 @@ pyOpenSSL, django-rest-framework-jwt, celery, nobot}: writeShellApplication rec git clone https://github.com/mozilla/addons-server.git --progress cd addons-server git switch 8b4423547f932b2d9fa2b5a9c81d399bdc29bd6e --detach --progress - #git revert e971a1c0543c66fd513e9c1c06f7786eb2f92b31 + + content="from settings import * +ALLOWED_HOSTS = [\"127.0.0.1\"]" + echo "$content" > settings_local.py + + content="diff --git a/src/olympia/api/serializers.py b/src/olympia/api/serializers.py +index 35e4a37c8c..3586bff1eb 100644 +--- a/src/olympia/api/serializers.py ++++ b/src/olympia/api/serializers.py +@@ -1,6 +1,5 @@ + from datetime import datetime + +-from elasticsearch_dsl.result import Result + from elasticsearch_dsl.response.hit import Hit + from rest_framework.serializers import ModelSerializer + +@@ -45,7 +44,7 @@ class BaseESSerializer(ModelSerializer): + def to_representation(self, data): + # Support \`Result\` instances to allow passing in ElasticSearch + # results directly into the serializer. +- if isinstance(data, (Result, Hit)): ++ if isinstance(data, Hit): + data = data.to_dict() + + obj = self.fake_object(data) +" + echo "$content" > elasticsearch.diff + git apply elasticsearch.diff cd ../.. fi @@ -45,8 +75,13 @@ pyOpenSSL, django-rest-framework-jwt, celery, nobot}: writeShellApplication rec dbServer="$!" sleep 3 echo "CREATE DATABASE olympia CHARACTER SET utf8 COLLATE utf8_unicode_ci;" | mysql -u root + echo "set global net_buffer_length=1000000;" | mysql -u root + echo "set global max_allowed_packet=1000000000;" | mysql -u root make -f Makefile-docker initialize_db + npm install + make -f Makefile-docker copy_node_js + make -f Makefile-docker populate_data kill "$dbServer" sleep 6 @@ -56,6 +91,7 @@ pyOpenSSL, django-rest-framework-jwt, celery, nobot}: writeShellApplication rec dbServer="$!" sleep 3 - python ./manage.py + make -f Makefile-docker populate_data + python ./manage.py runserver ''; } diff --git a/schematic.nix b/schematic.nix new file mode 100644 index 0000000..defbe4a --- /dev/null +++ b/schematic.nix @@ -0,0 +1,13 @@ +{stdenv, python27Packages}: python27Packages.buildPythonPackage rec { + pname = "schematic"; + version = "0.4"; + format = "setuptools"; + + src = python27Packages.fetchPypi { + inherit pname version; + extension = "tar.gz"; + hash = "sha256-wOEPh3KX+EFKHK/nWcZ/snkC/lCDj3JfS18VxZit654="; + }; + + propagatedBuildInputs = [python27Packages.setuptools]; +}