Skip to content

nextflow: rebuild version 23.10.0 #262

Merged
merged 1 commit into from
Nov 2, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions nextflow-23.10.0-1.build.sh
Original file line number Diff line number Diff line change
@@ -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