summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 867f6eebe9acca267076bdeba6c8a0d76ae21fca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Maintainer: Constantine Evans <const@costi.eu>
#
# Note: you probably want to install the binary version of NUPACK 4, not this source build.  See below for
# more details.
#
# NUPACK is available under a restricted license that is largely similar to the BSD 3-clause license, updated
# to address web applications, but with the notable exception that it allows for use and redistribution 
# "non-commercial academic purposes only".  Furthermore, access to the downloads requires requires a username
# and password that can be obtained through (free) registration, and sources and binary wheels are intentionally
# not in PyPI.  While the license appears to allow for redistribution, in the interest of following the authors' 
# wishes, this PKGBUILD does provide the source code automatically.
#
# To use this PKGBUILD, if you can agree to the non-commercial academic license, register for a username and 
# password at https://www.nupack.org/downloads, download the NUPACK 4 zip file there, and place the zip file 
# in the same directory as this PKGBUILD.
#
# Note that this PKGBUILD is for *source* installation, which may be significantly more complicated than simply
# installing a binary wheel, also available from the Nupack website.  The intention of this PKGBUILD is to attempt
# to make source installation work smoothly in Arch Linux, using Arch and AUR packages as much as possible, and
# allowing installation in circumstances (for example, more recent Python versions) where binary wheels may not
# be suitable.  The PKGBUILD makes certain changes to the build process:
#
# - The default build process uses a bundled vcpkg to build and install a number of external dependencies.  This
#   build process did not work on Arch the last time I tried it.  The PKGBUILD removes vcpkg from the build process
#   entirely, and instead uses Arch and AUR packages.  In many cases, this means that newer versions of those
#   dependencies are used than in the normal build process, which may cause breakages.
# - NUPACK 4 relies on an older version of TBB, and newer versions removed parts of the API it uses.  This PKGBUILD
#   thus requires an older version of TBB, which may cause problems for other packages on your system.
# - One error message in NUPACK 4 does not work well with newer versions of spdlog and fmt, and so is commented out.
# - SIMD support is currently disabled, as (a) libsimdpp is not currently in the AUR, and (b) when installed (I have
#   a PKGBUILD for it locally), NUPACK 4 has build errors wwhen NUPACK_SIMD=ON that I don't currently understand.

pkgname=nupack4
pkgver=4.0.0.28
pkgrel=1
pkgdesc="Software suite for the analysis and design of nucleic acid structures, devices, and systems."
url="https://nupack.org"
license=('Custom')

arch=('x86_64')

depends=(
    'armadillo'
    'tbb2019'
    'gecode'
    'nlohmann-json'
    'jsoncpp'
    'tclap'
    'spdlog'
    'boost'
    'boost-libs'
    'python'
    'python-scipy'
    'python-pandas'
)

DLAGENTS=("file::/usr/bin/echo ${BOLD}${RED} Unable to find %u, please read the PKGBUILD ${ALL_OFF}" $DLAGENTS[@])

source=("nupack-4.0.0.28.zip::file://nupack-4.0.0.28.zip" "disable-vcpkg.patch" "disable-broken-logger.patch")

sha256sums=('4b15e4773cbe9dd5bee6afaa1085170fc8e2cee9de711f8603d66575be83cbe1'
            'f9dac1f4a8cb26f3c11fa5cbf39de4feee34f5914023cc8c93950c88dca5f12b'
            '9dd038b73b9d34050b208a93b4521ee661e7f4d7ccd49ba4ae40ff85b8d441d2')

prepare() {
	cd "nupack-$pkgver"
    patch --forward --strip=1 --input=../disable-vcpkg.patch
    patch --forward --strip=1 --input=../disable-broken-logger.patch
}

build() {
    cmake -B build -S "nupack-${pkgver}/source" \
        -DCMAKE_BUILD_TYPE='None' \
        -DCMAKE_INSTALL_PREFIX='/usr' \
        -DNUPACK_SIMD=OFF \
        -DCMAKE_C_COMPILER=clang \
        -DCMAKE_CXX_COMPILER=clang++ \
        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
        -Wno-dev
    cmake --build build --target nupack-python
}

# check() {
# 	cd "$pkgname-$pkgver/source"
# 	make -k check
# }

package() {
    cd "build"
    python setup.py install --root="$pkgdir" --optimize=1
    cd ..
    install -Dm644 "nupack-${pkgver}/source/LICENSE.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}