summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Bachmann2020-08-26 12:00:30 +0200
committerTobias Bachmann2020-08-26 12:00:30 +0200
commitf3191df0c031ee857836782e462183e4b7e370fc (patch)
treeee609b7a8f4178dadfe142139204f00c4f059457
parente5ce4df5a8495d8aa3514609c57f802d46eb8eca (diff)
downloadaur-f3191df0c031ee857836782e462183e4b7e370fc.tar.gz
Version bump
-rw-r--r--.SRCINFO24
-rw-r--r--001-use_distribution_environment.patch4
-rw-r--r--005-fix_cuda_thrust_include.patch76
-rw-r--r--006-compile_ptx2_without_std-c++11.patch10
-rwxr-xr-xPKGBUILD28
-rw-r--r--buildSettings.mk35
-rwxr-xr-ximcp31
-rwxr-xr-ximglob31
-rwxr-xr-ximmv31
9 files changed, 220 insertions, 50 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f9e86a614ad5..c630143d7d73 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = fsl
pkgdesc = A comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data
- pkgver = 6.0.3
+ pkgver = 6.0.4
pkgrel = 1
url = http://www.fmrib.ox.ac.uk/fsl/
arch = x86_64
@@ -27,8 +27,8 @@ pkgbase = fsl
depends = bc
depends = openblas
optdepends = cuda
- source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.3-sources.tar.gz
- source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.3-feeds.tar.gz
+ source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.4-sources.tar.gz
+ source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.4-feeds.tar.gz
source = buildSettings.mk
source = imcp
source = imglob
@@ -37,16 +37,20 @@ pkgbase = fsl
source = 002-fix_meldata_usage_of_ifstream.patch
source = 003-fix_fsl_exec_empty_errorCode.patch
source = 004-fix_missing_LIB_PROB.patch
- sha256sums = 9eec9b4f5d67fa727b50ad6d4c8265b82403dd6163c4747797ef910f826a2636
- sha256sums = 719d9e12e165c1a40d411dae2aca53e8d9033192c91853a6c60e5a55c0c022fb
- sha256sums = e73d3b7289981c95581d9378c2a39694bc0fcdf7170c5defc864a47871e98df1
- sha256sums = c61f185fbe7e297c4518e96377aa5ff4852f90eda0dbb9ae8edc5e24735e14ad
- sha256sums = 7a1039cdc38b4d728f14efce3b0fda0cadc7bfcd3432556c3f3113985bf2720a
- sha256sums = b6f61a6d5672b6684f19150f6e21ded1bd04ec6415dcf07a32291e4002bfa5d8
- sha256sums = 8c85234f03d3cd226f84fd1aa446e46a8f00c2c6ae3cc7fefedc1e48ffc61daa
+ source = 005-fix_cuda_thrust_include.patch
+ source = 006-compile_ptx2_without_std-c++11.patch
+ sha256sums = 58b88f38e080b05d70724d57342f58e1baf56e2bd3b98506a72b4446cad5033e
+ sha256sums = 411daed14287d6ba536cb531450941ab1f570309cd561de4e2a4b0ec43a7e9f7
+ sha256sums = c7f93adcf037a73182ae42ae6a59d3eb04a492888b6c2a6b528f9cd16539b2b2
+ sha256sums = 8aac3a2ea61bb4c38eb363262ab7f89e55c49a5feb9912fd2ff71f2439f11fc9
+ sha256sums = b3280bafc86d04dfa8835ef21f50469f2645bf09c36edcdd3f04349ce2c74225
+ sha256sums = 8e343b0ff93477280fd9a980822ddc9980afa7201dea51c886376c189c234c99
+ sha256sums = 906ac7de8068e5a5487b083844b50b6afd7562866088a4175fd88030182affdd
sha256sums = 13d4cf35343e7a73bc2534c94b1b0d4db41c338d374e6982091e4cf7a421d420
sha256sums = 64b4ccefa63a3cf920b185dd52e94b918c24f2cedaebcec8efb767bd80a6418a
sha256sums = adea0372f42026e72e385f1bec19ecc8cffa46de1f617271f14c9345c6b83c04
+ sha256sums = 9471addfc2f880350eedadcb99cb8b350abf42be1c0652ccddf49e34e5e48734
+ sha256sums = ab68cb802243ce715eff0d1136cfa29fa34a3e09934e5e20e02a092d69028df1
pkgname = fsl
diff --git a/001-use_distribution_environment.patch b/001-use_distribution_environment.patch
index 2461d225f84f..65bc781bfee2 100644
--- a/001-use_distribution_environment.patch
+++ b/001-use_distribution_environment.patch
@@ -63,8 +63,8 @@
fi
done
---- a/fsl/src/mist-clean/Makefile 2018-10-17 13:00:28.000000000 +0200
-+++ b/fsl/src/mist-clean/Makefile 2018-11-25 11:26:42.643047048 +0100
+--- a/fsl/src/mist/Makefile 2018-10-17 13:00:28.000000000 +0200
++++ b/fsl/src/mist/Makefile 2018-11-25 11:26:42.643047048 +0100
@@ -2,15 +2,15 @@
NLOPT_INC = ${FSLEXTINC}
diff --git a/005-fix_cuda_thrust_include.patch b/005-fix_cuda_thrust_include.patch
new file mode 100644
index 000000000000..1870755c2f0c
--- /dev/null
+++ b/005-fix_cuda_thrust_include.patch
@@ -0,0 +1,76 @@
+# Author: Caspar van Leeuwen (SURF)
+# FSL includes thrust headers by doing #include <device_vector.h>
+# and then include -I$CUDA_ROOT/include/thrust
+# This results in errors like
+# /sw/arch/Debian10/EB_production/2019/software/CUDA/10.1.243/include/cuda_runtime_api.h(7397):
+# error: identifier "UINT_MAX" is undefined
+# This is normally defined in the standard C header 'limits.h'.
+# However, by doing -I$CUDA_ROOT/include/thrust, the limits.h from Thrust is picked up instead!
+# According to the Thrust docs, includes should be done as #include <thrust/device_vector.h>
+# This way, -I$CUDA_ROOT/include is sufficient, and the limits.h from thrust
+# no longer erroneously gets picked up.
+diff -Nru a/fsl/src/fdt/CUDA/diffmodels.cuh fsl/src/fdt/CUDA/diffmodels.cuh
+--- a/fsl/src/fdt/CUDA/diffmodels.cuh 2020-06-09 20:41:17.117128671 +0200
++++ b/fsl/src/fdt/CUDA/diffmodels.cuh 2020-06-09 20:42:44.045211731 +0200
+@@ -66,7 +66,7 @@
+ University, to negotiate a licence. Contact details are:
+ <a href="/cgi-bin/wa-jisc.exe?LOGON=A3%3Dind2006%26L%3DFSL%26E%3Dbase64%26P%3D3480627%26B%3D------%253D_Part_434001_1485233425.1591892113317%26T%3Dtext%252Fx-patch%3B%2520name%3D%2522FSL-6.0.2_thrust.patch%2522%26N%3DFSL-6.0.2_thrust.patch%26attachment%3Dq%26XSS%3D3" target="_parent" >[log in to unmask]</a> quoting Reference Project 9564, FSL.*/
+
+-#include <device_vector.h>
++#include <thrust/device_vector.h>
+
+ void fit_PVM_single( //INPUT
+ const vector<ColumnVector> datam_vec,
+diff -Nru a/fsl/src/fdt/CUDA/runmcmc.cu fsl/src/fdt/CUDA/runmcmc.cu
+--- a/fsl/src/fdt/CUDA/runmcmc.cu 2020-06-09 20:41:17.101128655 +0200
++++ b/fsl/src/fdt/CUDA/runmcmc.cu 2020-06-09 20:43:13.649240030 +0200
+@@ -71,8 +71,8 @@
+ #include "runmcmc_kernels.cu"
+ #include "sync_check.h"
+
+-#include <host_vector.h>
+-#include <device_vector.h>
++#include <thrust/host_vector.h>
++#include <thrust/device_vector.h>
+
+ #include <time.h>
+ #include <sys/time.h>
+diff -Nru a/fsl/src/fdt/CUDA/xfibres_gpu.cu fsl/src/fdt/CUDA/xfibres_gpu.cu
+--- a/fsl/src/fdt/CUDA/xfibres_gpu.cu 2020-06-09 20:41:17.117128671 +0200
++++ b/fsl/src/fdt/CUDA/xfibres_gpu.cu 2020-06-09 20:44:00.621284957 +0200
+@@ -76,8 +76,8 @@
+ #include "samples.h"
+ #include "options.h"
+
+-#include <host_vector.h>
+-#include <device_vector.h>
++#include <thrust/host_vector.h>
++#include <thrust/device_vector.h>
+
+ #include <time.h>
+ #include <sys/time.h>
+diff -Nru a/fsl/src/fdt/CUDA/xfibres_gpu.cuh fsl/src/fdt/CUDA/xfibres_gpu.cuh
+--- a/fsl/src/fdt/CUDA/xfibres_gpu.cuh 2020-06-09 20:41:17.113128667 +0200
++++ b/fsl/src/fdt/CUDA/xfibres_gpu.cuh 2020-06-09 20:43:38.469263769 +0200
+@@ -67,8 +67,8 @@
+ <a href="/cgi-bin/wa-jisc.exe?LOGON=A3%3Dind2006%26L%3DFSL%26E%3Dbase64%26P%3D3480627%26B%3D------%253D_Part_434001_1485233425.1591892113317%26T%3Dtext%252Fx-patch%3B%2520name%3D%2522FSL-6.0.2_thrust.patch%2522%26N%3DFSL-6.0.2_thrust.patch%26attachment%3Dq%26XSS%3D3" target="_parent" >[log in to unmask]</a> quoting Reference Project 9564, FSL.*/
+
+ #include "newimage/newimageall.h"
+-#include <host_vector.h>
+-#include <device_vector.h>
++#include <thrust/host_vector.h>
++#include <thrust/device_vector.h>
+
+ #include "fibre_gpu.h"
+ #include <curand_kernel.h>
+--- a/fsl/src/fdt/Makefile 2020-08-25 21:32:15.316740340 +0200
++++ b/fsl/src/fdt/Makefile 2020-08-25 21:34:28.163670755 +0200
+@@ -171,7 +171,7 @@
+ ${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${EDDYCOMBINEOBJS} ${DLIBS}
+
+ ${LIBBEDPOSTX_CUDA}:
+- ${NVCC} --shared --compiler-options '-fPIC' -o CUDA/libbedpostx_cuda.so CUDA/init_gpu.cu CUDA/samples.cu CUDA/diffmodels.cu CUDA/runmcmc.cu CUDA/xfibres_gpu.cu -O3 ${GENCODE_FLAGS} -lcudart -lcuda -lcurand -I. -L${LIB_CUDA} -L${LIB_CUDA}/stubs -ICUDA/options -I${INC_NEWMAT} -I${FSLDIR}/include -I${INC_BOOST} -I${INC_CUDA} -I${INC_CUDA}/thrust -maxrregcount=64
++ ${NVCC} --shared --compiler-options '-fPIC' -o CUDA/libbedpostx_cuda.so CUDA/init_gpu.cu CUDA/samples.cu CUDA/diffmodels.cu CUDA/runmcmc.cu CUDA/xfibres_gpu.cu -O3 ${GENCODE_FLAGS} -lcudart -lcuda -lcurand -I. -L${LIB_CUDA} -L${LIB_CUDA}/stubs -ICUDA/options -I${INC_NEWMAT} -I${FSLDIR}/include -I${INC_BOOST} -I${INC_CUDA} -I${INC_CUDA} -maxrregcount=64
+ @if [ ! -d ${FSLDEVDIR}/lib/ ] ; then ${MKDIR} ${FSLDEVDIR}/lib ; fi
+ ${CP} -rf CUDA/libbedpostx_cuda.so ${FSLDEVDIR}/lib
+
diff --git a/006-compile_ptx2_without_std-c++11.patch b/006-compile_ptx2_without_std-c++11.patch
new file mode 100644
index 000000000000..2067c5d4df5e
--- /dev/null
+++ b/006-compile_ptx2_without_std-c++11.patch
@@ -0,0 +1,10 @@
+--- a/fsl/src/ptx2/Makefile 2020-01-24 11:47:42.000000000 +0100
++++ b/fsl/src/ptx2/Makefile 2020-08-25 23:34:22.215595885 +0200
+@@ -24,6 +24,7 @@
+ USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_NEWRAN} -L${LIB_CPROB} -L${LIB_PROB} -L${LIB_ZLIB}
+
+ DLIBS = -lnewmeshclass -lwarpfns -lbasisfield -lfslsurface -lfslvtkio -lmeshclass -lnewimage -lutils -lmiscmaths -lnewmat -lnewran -lNewNifti -lgiftiio -lexpat -lfirst_lib -lznz -lcprob -lutils -lprob -lm -lz
++GNU_ANSI_FLAGS = -Wall -ansi -pedantic -Wno-long-long
+
+ CCOPS=ccops
+ PTX=probtrackx2
diff --git a/PKGBUILD b/PKGBUILD
index d4f84e08ddf9..cbcf302fa1ad 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
# Contributor: fishburn <frankthefishburn@gmail.com>
pkgname=fsl
-pkgver=6.0.3
+pkgver=6.0.4
pkgrel=1
pkgdesc="A comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data"
arch=("x86_64")
@@ -20,18 +20,22 @@ source=("https://www.fmrib.ox.ac.uk/fsldownloads/fsl-${pkgver}-sources.tar.gz"
"001-use_distribution_environment.patch"
"002-fix_meldata_usage_of_ifstream.patch"
"003-fix_fsl_exec_empty_errorCode.patch"
- "004-fix_missing_LIB_PROB.patch")
+ "004-fix_missing_LIB_PROB.patch"
+ "005-fix_cuda_thrust_include.patch"
+ "006-compile_ptx2_without_std-c++11.patch")
-sha256sums=('9eec9b4f5d67fa727b50ad6d4c8265b82403dd6163c4747797ef910f826a2636'
- '719d9e12e165c1a40d411dae2aca53e8d9033192c91853a6c60e5a55c0c022fb'
- 'e73d3b7289981c95581d9378c2a39694bc0fcdf7170c5defc864a47871e98df1'
- 'c61f185fbe7e297c4518e96377aa5ff4852f90eda0dbb9ae8edc5e24735e14ad'
- '7a1039cdc38b4d728f14efce3b0fda0cadc7bfcd3432556c3f3113985bf2720a'
- 'b6f61a6d5672b6684f19150f6e21ded1bd04ec6415dcf07a32291e4002bfa5d8'
- '8c85234f03d3cd226f84fd1aa446e46a8f00c2c6ae3cc7fefedc1e48ffc61daa'
+sha256sums=('58b88f38e080b05d70724d57342f58e1baf56e2bd3b98506a72b4446cad5033e'
+ '411daed14287d6ba536cb531450941ab1f570309cd561de4e2a4b0ec43a7e9f7'
+ 'c7f93adcf037a73182ae42ae6a59d3eb04a492888b6c2a6b528f9cd16539b2b2'
+ '8aac3a2ea61bb4c38eb363262ab7f89e55c49a5feb9912fd2ff71f2439f11fc9'
+ 'b3280bafc86d04dfa8835ef21f50469f2645bf09c36edcdd3f04349ce2c74225'
+ '8e343b0ff93477280fd9a980822ddc9980afa7201dea51c886376c189c234c99'
+ '906ac7de8068e5a5487b083844b50b6afd7562866088a4175fd88030182affdd'
'13d4cf35343e7a73bc2534c94b1b0d4db41c338d374e6982091e4cf7a421d420'
'64b4ccefa63a3cf920b185dd52e94b918c24f2cedaebcec8efb767bd80a6418a'
- 'adea0372f42026e72e385f1bec19ecc8cffa46de1f617271f14c9345c6b83c04')
+ 'adea0372f42026e72e385f1bec19ecc8cffa46de1f617271f14c9345c6b83c04'
+ '9471addfc2f880350eedadcb99cb8b350abf42be1c0652ccddf49e34e5e48734'
+ 'ab68cb802243ce715eff0d1136cfa29fa34a3e09934e5e20e02a092d69028df1')
prepare() {
cd "${srcdir}"
@@ -49,6 +53,10 @@ prepare() {
patch -Np1 -i "${srcdir}"/003-fix_fsl_exec_empty_errorCode.patch
# I'm not sure why -L${LIB_PROB} is missing in some Makefiles
patch -Np1 -i "${srcdir}"/004-fix_missing_LIB_PROB.patch
+ # Adapted from Caspar van Leeuwen's patch: https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=FSL;2b74023.2006
+ patch -Np1 -i "${srcdir}"/005-fix_cuda_thrust_include.patch
+ # ptx2 does not compile when assuming C++11 standard
+ patch -Np1 -i "${srcdir}"/006-compile_ptx2_without_std-c++11.patch
# Insert makepkg build flags into configuration
sed -i '0,/${AccumulatedIncFlags}/{s^${AccumulatedIncFlags}^& '"${CFLAGS}"'^}' "${srcdir}/fsl/config/common/vars.mk"
diff --git a/buildSettings.mk b/buildSettings.mk
index 8adec0505a4a..52b59563fbb3 100644
--- a/buildSettings.mk
+++ b/buildSettings.mk
@@ -46,10 +46,10 @@ LIB_PNG = /usr/lib
INC_PNG = /usr/include/libpng16
# PROB library
LIB_PROB = ${FSLEXTLIB}
-INC_PROB = ${FSLEXTINC}/libprob
+INC_PROB = ${FSLEXTINC}/cprob
# CPROB library
LIB_CPROB = ${FSLEXTLIB}
-INC_CPROB = ${FSLEXTINC}/libcprob
+INC_CPROB = ${FSLEXTINC}/
# NEWRAN library
LIB_NEWRAN = ${FSLEXTLIB}
INC_NEWRAN = ${FSLEXTINC}/newran
@@ -78,9 +78,9 @@ INC_NEWMAT = ${FSLEXTINC}/armawrap/armawrap -DARMA_USE_LAPACK -DARMA_USE_BLAS -D
#####################################################################
ifeq ($(SYSTYPE), Darwin)
############### System Vars #####################################
-CC = cc
-CXX = c++
-CXX11 = clang++
+CC = cc-9
+CXX = c++-9
+CXX11 = clang++-9
CSTATICFLAGS =
CXXSTATICFLAGS =
CFLAGS = -std=c99
@@ -124,9 +124,9 @@ endif # if Darwin
#####################################################################
ifeq ($(SYSTYPE), Linux)
############### System Vars #####################################
-CC = gcc
-CXX = c++
-CXX11 = c++
+CC = gcc-9
+CXX = c++-9
+CXX11 = c++-9
CSTATICFLAGS = -static
CXXSTATICFLAGS = -static
ARCHFLAGS = -m64
@@ -170,12 +170,15 @@ LIB_NEWMAT = /usr/lib -llapack -lopenblas
#$(info GCC MAJ VER $(GCCMAJ))
#$(info GCC MIN VER $(GCCMIN))
#$(info GCC PAT VER $(GCCPAT))
-# Alter this is host default c++ does not support C++11
-HOSTNAME := $(shell hostname -s)
-ifeq ($(HOSTNAME), caper)
-CXX11 = scl enable devtoolset-2 -- c++
-NVCC11 = scl enable devtoolset-2 -- ${CUDA_INSTALLATION}/bin/nvcc
-endif # if GCCMIN
-#Project specific variables
-EDDYBUILDPARAMETERS="cuda=1 CUDAVER=8.0" "cuda=1 CUDAVER=9.1" "cpu=1"
+
+#Project specific variables
+EDDYBUILDPARAMETERS = "cuda=1 CUDAVER=8.0" "cuda=1 CUDAVER=9.1" "cpu=1"
+fdt_MASTERBUILD = COMPILE_GPU = 1
+ptx2_MASTERBUILD = COMPILE_GPU = 1
+define newline
+
+
+endef
+#PTX2_MASTER_COMMANDS = COMPILE_GPU = 1$(newline)FOO=2
endif # if Linux
+
diff --git a/imcp b/imcp
index 5b91bc26c6d7..dd8f5bbfbf7d 100755
--- a/imcp
+++ b/imcp
@@ -1,10 +1,33 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
+#!/usr/bin/python
+# EASY-INSTALL-ENTRY-SCRIPT: 'fslpy==3.2.2','console_scripts','imcp'
import re
import sys
-from fsl.scripts.imcp import main
+# for compatibility with easy_install; see #2198
+__requires__ = 'fslpy==3.2.2'
+
+try:
+ from importlib.metadata import distribution
+except ImportError:
+ try:
+ from importlib_metadata import distribution
+ except ImportError:
+ from pkg_resources import load_entry_point
+
+
+def importlib_load_entry_point(spec, group, name):
+ dist_name, _, _ = spec.partition('==')
+ matches = (
+ entry_point
+ for entry_point in distribution(dist_name).entry_points
+ if entry_point.group == group and entry_point.name == name
+ )
+ return next(matches).load()
+
+
+globals().setdefault('load_entry_point', importlib_load_entry_point)
+
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
+ sys.exit(load_entry_point('fslpy==3.2.2', 'console_scripts', 'imcp')())
diff --git a/imglob b/imglob
index d5b40a51d29e..6d2a3c2c9077 100755
--- a/imglob
+++ b/imglob
@@ -1,10 +1,33 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
+#!/usr/bin/python
+# EASY-INSTALL-ENTRY-SCRIPT: 'fslpy==3.2.2','console_scripts','imglob'
import re
import sys
-from fsl.scripts.imglob import main
+# for compatibility with easy_install; see #2198
+__requires__ = 'fslpy==3.2.2'
+
+try:
+ from importlib.metadata import distribution
+except ImportError:
+ try:
+ from importlib_metadata import distribution
+ except ImportError:
+ from pkg_resources import load_entry_point
+
+
+def importlib_load_entry_point(spec, group, name):
+ dist_name, _, _ = spec.partition('==')
+ matches = (
+ entry_point
+ for entry_point in distribution(dist_name).entry_points
+ if entry_point.group == group and entry_point.name == name
+ )
+ return next(matches).load()
+
+
+globals().setdefault('load_entry_point', importlib_load_entry_point)
+
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
+ sys.exit(load_entry_point('fslpy==3.2.2', 'console_scripts', 'imglob')())
diff --git a/immv b/immv
index d4c62583c148..b012eec138a2 100755
--- a/immv
+++ b/immv
@@ -1,10 +1,33 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
+#!/usr/bin/python
+# EASY-INSTALL-ENTRY-SCRIPT: 'fslpy==3.2.2','console_scripts','immv'
import re
import sys
-from fsl.scripts.immv import main
+# for compatibility with easy_install; see #2198
+__requires__ = 'fslpy==3.2.2'
+
+try:
+ from importlib.metadata import distribution
+except ImportError:
+ try:
+ from importlib_metadata import distribution
+ except ImportError:
+ from pkg_resources import load_entry_point
+
+
+def importlib_load_entry_point(spec, group, name):
+ dist_name, _, _ = spec.partition('==')
+ matches = (
+ entry_point
+ for entry_point in distribution(dist_name).entry_points
+ if entry_point.group == group and entry_point.name == name
+ )
+ return next(matches).load()
+
+
+globals().setdefault('load_entry_point', importlib_load_entry_point)
+
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
+ sys.exit(load_entry_point('fslpy==3.2.2', 'console_scripts', 'immv')())