From a559a7825962b229808111279430ddc76e6aea04 Mon Sep 17 00:00:00 2001
From: thomas <kreitler@molgen.mpg.de>
Date: Wed, 1 Nov 2023 19:00:34 +0100
Subject: [PATCH] nextflow: rebuild version 23.10.0

Under some circumstances nexflow checks if NXF_PLUGINS_DIR
is writeable and refuses to start (not always, and not fully
reproducible). Anyway the plugins are often installed
automatically, so '$HOME/.nextflow/plugins' is IMHO acceptable.
---
 nextflow-23.10.0-1.build.sh | 98 +++++++++++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)
 create mode 100755 nextflow-23.10.0-1.build.sh

diff --git a/nextflow-23.10.0-1.build.sh b/nextflow-23.10.0-1.build.sh
new file mode 100755
index 0000000..1272e31
--- /dev/null
+++ b/nextflow-23.10.0-1.build.sh
@@ -0,0 +1,98 @@
+#! /bin/bash
+
+set -e
+umask 022
+
+PKG=nextflow
+VERSION=23.10.0
+BUILD=1
+JDK=/pkg/openjdk-21.0.0.35-0
+
+PREFIX=/pkg/$PKG-$VERSION-$BUILD
+if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$USER/$PKG-$VERSION-$BUILD ; fi
+
+mkdir -p $PREFIX
+cat >$PREFIX/profile <<-EOF
+	PATH=$PREFIX/bin:\$PATH
+	if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi
+EOF
+. $PREFIX/profile
+
+BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD-$USER.build.tmp
+test -d $BUILD_TMPDIR && rm -r $BUILD_TMPDIR
+export TMPDIR=$BUILD_TMPDIR
+export HOME=$BUILD_TMPDIR/home
+mkdir -p $HOME
+
+BUILDDIR=$PREFIX/build
+mkdir -p $BUILDDIR
+
+cd $BUILDDIR
+
+source $JDK/profile
+
+# the '-all' file is a zip archive ...
+# orig: https://github.com/nextflow-io/nextflow/releases/download/v23.10.0/nextflow-23.10.0-all
+BEEHIVE=https://beehive.molgen.mpg.de/b1ece372a2c4db0c57a204d5a6175eb9/nextflow-23.10.0-all
+test -e nextflow-$VERSION-all || wget -nv $BEEHIVE
+
+# effect: this extracts to $HOME/.nextflow/capsule/apps/nextflow-all_'version'
+bash nextflow-$VERSION-all info
+
+# 'install' jars under $PREFIX/lib
+cd $PREFIX
+rm -fr bin lib
+mkdir bin lib
+# get rid of '.lock', '.extracted'
+rm -v $HOME/.nextflow/capsule/apps/nextflow-all_$VERSION/.[a-z]*
+mv $HOME/.nextflow/capsule/apps/nextflow-all_$VERSION lib
+
+
+# create a straightforward launcher
+
+# Reflection, and migrating from Java-8 upwards:
+# [... use] --add-opens to open a package, which makes all its types and members accessible
+
+cat <<- LAUNCHER > bin/nextflow
+	#! /usr/bin/bash
+
+	NXF_PLUGINS_MODE=${NXF_PLUGINS_MODE:-prod}
+	export NXF_PLUGINS_MODE
+	NXF_PLUGINS_DIR=\${NXF_PLUGINS_DIR:-\$HOME/.nextflow/plugins}
+	mkdir -vp "\$NXF_PLUGINS_DIR"
+	export NXF_PLUGINS_DIR
+
+	NF_XTMPDIR=\${NF_XTMPDIR:-/scratch/local2/\$USER/nextflow_tmp}
+	mkdir -vp "\$NF_XTMPDIR"
+
+	exec $JDK/bin/java \\
+	  --add-opens=java.base/java.lang=ALL-UNNAMED \\
+	  --add-opens=java.base/java.io=ALL-UNNAMED \\
+	  --add-opens=java.base/java.nio=ALL-UNNAMED \\
+	  --add-opens=java.base/java.net=ALL-UNNAMED \\
+	  --add-opens=java.base/java.util=ALL-UNNAMED \\
+	  --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED \\
+	  --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \\
+	  --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.nio.ch=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.nio.fs=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED \\
+	  --add-opens=java.base/sun.net.www.protocol.file=ALL-UNNAMED \\
+	  --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \\
+	  --add-opens=java.base/java.util.regex=ALL-UNNAMED \\
+	  \\
+	  -Djava.io.tmpdir="\$NF_XTMPDIR" \\
+	  -Dfile.encoding=UTF-8 \\
+	  -Djava.awt.headless=true \\
+	  -Dcom.sun.security.enableAIAcaIssuers=true \\
+	  -classpath '$PREFIX/lib/nextflow-all_$VERSION/*' \\
+	  nextflow.cli.Launcher \\
+	  "\${@+\$@}"
+
+LAUNCHER
+
+chmod -c +x bin/nextflow
+
+exit