summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Bachmann2023-02-04 21:26:07 +0100
committerTobias Bachmann2023-02-04 21:26:07 +0100
commit195f5f1f3bf79f8360766f7c595e96776e8756d7 (patch)
tree73c0519f30660b54242d68f4009db946b5e4de8c
parent193fd48ae74ff50f805cc7da7f507ec9bf8df87a (diff)
downloadaur-195f5f1f3bf79f8360766f7c595e96776e8756d7.tar.gz
New build system
-rw-r--r--.SRCINFO46
-rwxr-xr-xPKGBUILD141
2 files changed, 20 insertions, 167 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 685796eb6be8..57f07d5ff29b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,50 +1,12 @@
pkgbase = fsl
pkgdesc = A comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data
- pkgver = 6.0.5.1
- pkgrel = 6
+ pkgver = 6.0.6.2
+ pkgrel = 1
url = http://www.fmrib.ox.ac.uk/fsl/
arch = x86_64
license = custom
- makedepends = boost
- makedepends = fftw
- makedepends = inetutils
- depends = gd
- depends = libxml2
- depends = libxml++2.6
- depends = gsl
- depends = libpng
- depends = nlopt
- depends = newmat
- depends = tcl
- depends = tk
- depends = zlib
depends = python
- depends = glu
- depends = boost-libs
- depends = vtk
- depends = sqlite
- depends = fslpy>=3.7.0
- depends = bc
- depends = openblas
- depends = fmt
- depends = pugixml
- depends = tbb
- optdepends = cuda-9.1
- source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.5.1-sources.tar.gz
- source = https://www.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.5.1-feeds.tar.gz
- source = buildSettings.mk
- source = fsl_sub
- source = 001-use_distribution_environment.patch
- source = 002-fix_fsl_exec_empty_errorCode.patch
- source = 003-fix_missing_LIB_PROB.patch
- source = 004-fix_mist_discard.patch
- sha256sums = d8ab2ebc87d3e33ce1097dde18d8a55f62d4a27b45efc4f68adccfb6e8e1425c
- sha256sums = 12aadb3bf48b1f0624aebc83f7e4b9fa46fb513b816b8ca29b0dee96570405fc
- sha256sums = 08eba697dfd9f9e9d102ab2a73b506f48a9c946a55a14393ed9743c3a0387bc5
- sha256sums = 2516982d151ab9e450a9ac6d5a6fc87099a7acc067514d80422c69950e618170
- sha256sums = 906ac7de8068e5a5487b083844b50b6afd7562866088a4175fd88030182affdd
- sha256sums = 64b4ccefa63a3cf920b185dd52e94b918c24f2cedaebcec8efb767bd80a6418a
- sha256sums = adea0372f42026e72e385f1bec19ecc8cffa46de1f617271f14c9345c6b83c04
- sha256sums = 1ea3ef517e9692ea8e95076c5eb0b759637672df41ace9619b50c2c9fa8216c2
+ source = https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py
+ sha256sums = 898e53c62814d9c8df8ae4f2abc3f79ad7c91aaf497b3f36b39310a8c4a369d0
pkgname = fsl
diff --git a/PKGBUILD b/PKGBUILD
index d18e32ca4146..22ab82c75819 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,145 +1,36 @@
# Maintainer: Tobias Bachmann <tobachmann@gmx.de>
# Contributor: fishburn <frankthefishburn@gmail.com>
-# Set number of parallel compile jobs, default equals number of CPUs
-NJOBS=$(nproc)
-
-# Run makepkg or your usual AUR helper with CUDA=1 as an environment variable
-# or uncomment the following line ('cuda-9.1' from the AUR is needed)
-#CUDA=1
-
pkgname=fsl
-pkgver=6.0.5.1
-pkgrel=6
+pkgver=6.0.6.2
+pkgrel=1
pkgdesc="A comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data"
arch=("x86_64")
url="http://www.fmrib.ox.ac.uk/fsl/"
license=('custom')
-depends=('gd' 'libxml2' 'libxml++2.6' 'gsl' 'libpng' 'nlopt' 'newmat' 'tcl' 'tk' 'zlib' 'python' 'glu' 'boost-libs' 'vtk' 'sqlite' 'fslpy>=3.7.0' 'bc' 'openblas' 'fmt' 'pugixml' 'tbb')
-makedepends=('boost' 'fftw' 'inetutils')
-optdepends=('cuda-9.1')
-source=("https://www.fmrib.ox.ac.uk/fsldownloads/fsl-${pkgver}-sources.tar.gz"
- "https://www.fmrib.ox.ac.uk/fsldownloads/fsl-${pkgver}-feeds.tar.gz"
- "buildSettings.mk"
- "fsl_sub"
- "001-use_distribution_environment.patch"
- "002-fix_fsl_exec_empty_errorCode.patch"
- "003-fix_missing_LIB_PROB.patch"
- "004-fix_mist_discard.patch")
-
-sha256sums=('d8ab2ebc87d3e33ce1097dde18d8a55f62d4a27b45efc4f68adccfb6e8e1425c'
- '12aadb3bf48b1f0624aebc83f7e4b9fa46fb513b816b8ca29b0dee96570405fc'
- '08eba697dfd9f9e9d102ab2a73b506f48a9c946a55a14393ed9743c3a0387bc5'
- '2516982d151ab9e450a9ac6d5a6fc87099a7acc067514d80422c69950e618170'
- '906ac7de8068e5a5487b083844b50b6afd7562866088a4175fd88030182affdd'
- '64b4ccefa63a3cf920b185dd52e94b918c24f2cedaebcec8efb767bd80a6418a'
- 'adea0372f42026e72e385f1bec19ecc8cffa46de1f617271f14c9345c6b83c04'
- '1ea3ef517e9692ea8e95076c5eb0b759637672df41ace9619b50c2c9fa8216c2')
-
-prepare() {
- cd "${srcdir}"
- export FSLDIR="${srcdir}/fsl"
- . "${FSLDIR}/etc/fslconf/fsl.sh"
- export FSLMACHTYPE=$(${FSLDIR}/etc/fslconf/fslmachtype.sh)
- # We only create this dir to keep 'build' from complaining
- mkdir "${FSLDIR}/config/${FSLMACHTYPE}"
-
- # Apply patches
- patch -Np1 -i "${srcdir}"/001-use_distribution_environment.patch
- # From https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=fsl;e8fa48c1.1501
- patch -Np1 -i "${srcdir}"/002-fix_fsl_exec_empty_errorCode.patch
- # I'm not sure why -L${LIB_PROB} is missing in some Makefiles
- patch -Np1 -i "${srcdir}"/003-fix_missing_LIB_PROB.patch
- # Recent glibc related upgrade (?) broke compilation of mist's shape.cpp due to binding unbindable types
- patch -Np1 -i "${srcdir}"/004-fix_mist_discard.patch
+depends=('python')
+source=("https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py")
- # Insert makepkg build flags into configuration
- sed -i '0,/${AccumulatedIncFlags}/{s^${AccumulatedIncFlags}^& '"${CFLAGS}"'^}' "${srcdir}/fsl/config/common/vars.mk"
- sed -i '0,/${AccumulatedIncFlags}/{s^${AccumulatedIncFlags}^& '"${CPPFLAGS}"'^}' "${srcdir}/fsl/config/common/vars.mk"
- sed -i '1,/${AccumulatedIncFlags}/!{s^${AccumulatedIncFlags}^& '"${CXXFLAGS}"'^}' "${srcdir}/fsl/config/common/vars.mk"
- sed -i '1,/${AccumulatedIncFlags}/!{s^${AccumulatedIncFlags}^& '"${CPPFLAGS}"'^}' "${srcdir}/fsl/config/common/vars.mk"
- sed -i 's^LDFLAGS = .*$^& '"${LDFLAGS}"'^g' "${srcdir}/fsl/config/common/vars.mk"
-
- echo -e "\n"
- if [ -n "${CUDA}" ] && [ ${CUDA} -eq 1 ]; then
- sed -i 's/COMPILE_GPU\ \=\ 0/COMPILE_GPU\ \=\ 1/g' "${srcdir}"/buildSettings.mk
- # With CUDA enabled, ptx2 has to be compiled without --std=c++11
- sed -i '26 a GNU_ANSI_FLAGS = -Wall -ansi -pedantic -Wno-long-long' "${srcdir}"/fsl/src/ptx2/Makefile
- echo "CUDA support is enabled. You need to install 'cuda-9.1' from the AUR first."
- else
- echo "CUDA support is disabled. To enable, set CUDA=1 in the PKGBUILD or as an environment variable."
- fi
- echo "Number of parallel compile jobs: ${NJOBS}"
- echo -e "\n"
-
- cp "${srcdir}"/buildSettings.mk "${FSLDIR}"/config/
-}
+sha256sums=('898e53c62814d9c8df8ae4f2abc3f79ad7c91aaf497b3f36b39310a8c4a369d0')
build() {
- export FSLDIR="${srcdir}/fsl"
- cd "${FSLDIR}"
-
- MAKEOPTIONS="-j $NJOBS" ./build extras CiftiLib-master utils znzlib NewNifti fslio giftiio miscmaths newimage libvis first_lib meshclass fslvtkio misc_tcl basisfield warpfns bint shapeModel MVdisc
- MAKEOPTIONS="-j 1" ./build fslsurface # fslsurface does not like parallel compiling
- MAKEOPTIONS="-j $NJOBS" ./build libmeshutils newmesh DiscreteOpt FastPDlib MSMRegLib misc_c topup asl_mfree avwutils basil baycest bet2 bianca cluster fsl_deface eddy fabber_core fabber_models_asl fabber_models_cest fabber_models_dce fabber_models_dsc fabber_models_dualecho fabber_models_dwi fabber_models_pet fabber_models_qbold fabber_models_t1 fast4
- MAKEOPTIONS="-j 1" ./build fdt # fdt does not like parallel compiling and has to be built after eddy with CUDA support enabled
- MAKEOPTIONS="-j $NJOBS" ./build feat5 film filmbabe first flameo flirt fnirt fslvbm fugue gps lesions mcflirt melodic misc_scripts miscvis mist mm MSM oxford_asl possum ptx2 qboot randomise siena slicetimer susan swe tbss verbena xtract
-
- # Install missing binaries, which are now Python scripts and shipped with fslpy
- /usr/bin/install -m 755 /usr/bin/{imcp,imglob,immv} "${srcdir}"/fsl/bin
- # Install missing fsl_sub script from 6.0.4
- /usr/bin/install -m 755 "${srcdir}"/fsl_sub "${srcdir}"/fsl/bin
- # Create fake fslpython environment (all dependencies have been taken care of system-wide)
- ln -s /usr/bin/python "${srcdir}"/fsl/bin/fslpython
-}
-
-
-check() {
- export FSLDIR="${srcdir}/fsl"
- export FEEDSDIR="${srcdir}/feeds"
- . "${FSLDIR}/etc/fslconf/fsl.sh"
- export PATH="${FSLDIR}/bin":${PATH}
- cd "${FEEDSDIR}"
- time ./RUN all
+ export TMPFSLDIR="${srcdir}/fsl"
+ mkdir -p "${TMPFSLDIR}"
+ /usr/bin/python3 "${srcdir}"/fslinstaller.py -n -o -d "${TMPFSLDIR}" -V "${pkgver}"
}
package() {
- rm -rf "${srcdir}/fsl/src"
- rm -rf "${srcdir}/fsl/extras/src"
- rm -rf "${srcdir}/fsl/extras/include"
- mkdir -p "${pkgdir}/opt/fsl"
-
- cp -r "${srcdir}/fsl/bin" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/data" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/doc" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/etc" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/extras" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/lib" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/refdoc" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/fsl/tcl" "${pkgdir}/opt/fsl/"
- cp -r "${srcdir}/feeds" "${pkgdir}/opt/fsl/"
-
+ # Replace paths and move files in place
+ find "${TMPFSLDIR}" -type f -exec grep -Iq . {} \; -exec sed -i "s|${srcdir}|/opt|g" {} +
+ mkdir "${pkgdir}"/opt
+ mv "${TMPFSLDIR}" "${pkgdir}"/opt
+ # Copy license
+ mkdir -p "${pkgdir}"/usr/share/licenses/fsl
+ cp "${pkgdir}"/opt/fsl/LICENCE.FSL "${pkgdir}"/usr/share/licenses/fsl/LICENSE
+ # Setup shell environment
mkdir -p "${pkgdir}/etc/profile.d"
echo 'FSLDIR=/opt/fsl' > "${pkgdir}/etc/profile.d/fsl.sh"
echo '. ${FSLDIR}/etc/fslconf/fsl.sh' >> "${pkgdir}/etc/profile.d/fsl.sh"
echo 'export FSLDIR' >> "${pkgdir}/etc/profile.d/fsl.sh"
echo 'export PATH=$PATH:${FSLDIR}/bin' >> "${pkgdir}/etc/profile.d/fsl.sh"
-
- mkdir -p "${pkgdir}/usr/share/licenses/fsl"
- grep -v \< "${srcdir}/fsl/doc/fsl/licence.html" | cat -s > "${pkgdir}/usr/share/licenses/fsl/LICENSE"
-
- # Fix permissions
- find "${pkgdir}" -type f -exec chmod 644 {} \;
- find "${pkgdir}" -type d -exec chmod 755 {} \;
- find "${pkgdir}/opt/fsl/bin" -exec chmod 755 {} \;
- find "${pkgdir}/opt/fsl/etc/fslconf" -exec chmod 755 {} \;
- chmod 755 "${pkgdir}/etc/profile.d/fsl.sh"
-
- mkdir -p "${pkgdir}/opt/fsl/feeds/results"
- chmod -R 777 "${pkgdir}/opt/fsl/feeds/results"
- chmod 755 "${pkgdir}/opt/fsl/feeds/RUN"
-
- # Clean up
- find "${pkgdir}" -empty -delete
- find "${pkgdir}" -type f -exec sed -i 's^/usr/local/fsl^/opt/fsl^g' "{}" \;
}