You are not logged in.
source=("git:github.com/OpenFAST/${_pkgname}") source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}")
The only really relevant difference is that the first is missing the // after the colon in the url. The following will work:
source=("git://github.com/OpenFAST/${_pkgname}")
Although prepending "$pkgname::" changes the name of the local repo.
Right, of course it was only a syntax error. I think both options how to adress the source was already explained above. Thanks for reminding.
The answer to this was already given by Morganamilo in post #15. Just add
md5sums=(SKIP)
See also the Wiki.
Thanks, I over overlooked that one. Unfortunately the entire post. Because Morganamilo suggests here to test makepkg of the new PKGBUILD in a chroot environment which sounds like a pretty good idea to me.
You are making good progress.
I just reread openfast build instructions and they seem to expect users to know how cmake does things.
Cmake does things differently then autotools confgure / make / make install .- cmake replaces configure
- cmake settings need to have -D prepended to be understoodcmake ../ \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_DOCUMENTATION=ON \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING=ON
The \ are there to inform bash the command continues on the next line .
Okay, so I should have a look into how Cmake and make actually work, for a deeper understanding.
------------------------
Dependenciesgcc and make are in base-devel . Having base-devel group installed is a requirement for building aur packages so those don't need to be mentioned.
(I do realise this package may never be submitted to aur, but rules for aur packages tend to be sane ).
Agreed, sticking to the convention no matter what makes a lot of sense. Especially for beginners.
gcc-fortran and cmake should stay and since you're building a -git pacakge git should be added to makedepends.
Done
python , hdf5 and yaml-cpp are a bit trickier.
the build instructions suggest they're needed at build time and as optdep at runtime.
This would make them makedepends AND optdepends .
Okay, I thought python , hdf5 and yaml-cpp would only optdepends as hdf5 and yaml-cpp are only necessary for the C++API and Python for the testing framework. But when considering the additional cmake instructions
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
they become makedepends AND optdepends. I see that now. Thank you for making me understand this!
I think you should put your name /contact details as maintainer in this PKGBUILD.
(doesn't have to be your real name, I put Lone_Wolf and lonewolf@xs4all.nl in my packages).There are very few threads about openfast on linux on the internet, and this thread / PKGBUILD are likely to show up when people search for openfast linux in the future.
You're doing the work to get it building/running, you should get credit for it.
Sure I will do so. Furthermore of course I'd be happy if I could contribute to the AUR by adding openfast here. I just don't know if that makes sense as there is that little user group.
current state of the PKGBUILD:
# Maintainer: funkaddict <funkaddict@gmx.de>
_pkgname=openfast
pkgname=${_pkgname}-git
pkgver=1.0.0
pkgrel=1
pkgdesc="Aero-hydro-servo-elastic CAE-Tool for horizontal axis wind turbines from US NREL"
arch=('x86_64')
url="https://github.com/OpenFAST/${_pkgname}"
license=('Apache')
depends=('lapack' 'blas')
makedepends=('git' 'gcc-fortran' 'cmake' 'python' 'hdf5' 'yaml-cpp')
optdepends=('python' 'hdf5' 'yaml-cpp')
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}")
md5sums=('SKIP')
provides=(${_pkgname})
conflicts=(${_pkgname})
pkgver() {
cd "$pkgname"
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
cd "$pkgname"
mkdir build
cd build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
check() {
cd "$pkgname"
make -k check
}
package() {
cd "$pkgname"
make DESTDIR="$pkgdir/" install
}
Edit:
Which results into:
$ makepkg
==> Making package: openfast-git v2.0.0.r0.g0769598a-1 (Sat 13 Oct 2018 07:00:40 PM CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Cloning openfast-git git repo...
Cloning into bare repository '*/openfast/openfast-git'...
remote: Enumerating objects: 99, done.
remote: Counting objects: 100% (99/99), done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 31440 (delta 43), reused 39 (delta 12), pack-reused 31341
Receiving objects: 100% (31440/31440), 147.33 MiB | 5.35 MiB/s, done.
Resolving deltas: 100% (18659/18659), done.
==> Validating source files with md5sums...
openfast-git ... Skipped
==> Extracting sources...
-> Creating working copy of openfast-git git repo...
Cloning into 'openfast-git'...
done.
==> Starting pkgver()...
==> Starting build()...
-- The CXX compiler identification is GNU 8.2.1
-- The C compiler identification is GNU 8.2.1
-- The Fortran compiler identification is GNU 8.2.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working Fortran compiler: /usr/bin/gfortran
-- Check for working Fortran compiler: /usr/bin/gfortran -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether /usr/bin/gfortran supports Fortran 90
-- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes
-- Looking for Fortran sgemm
-- Looking for Fortran sgemm - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found BLAS: /usr/lib/libblas.so
-- Looking for Fortran cheev
-- Looking for Fortran cheev - found
-- A library with LAPACK API found.
-- Setting system file as: src/SysGnuLinux.f90
CMake Error at reg_tests/CMakeLists.txt:60 (add_subdirectory):
The source directory
*/openfast/src/openfast-git/reg_tests/r-test
does not contain a CMakeLists.txt file.
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/5MW_Baseline".
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/AOC".
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/AWT27".
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/SWRT".
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/UAE_VI".
CMake Error at reg_tests/CMakeLists.txt:70 (file):
file COPY cannot find
"*/openfast/src/openfast-git/reg_tests/r-test/glue-codes/openfast/WP_Baseline".
CMake Error at /usr/share/cmake-3.12/Modules/ExternalProject.cmake:2525 (message):
No download info given for 'pfunit' and its source directory:
*/openfast/src/openfast-git/unit_tests/pfunit
is not an existing non-empty directory. Please specify one of:
* SOURCE_DIR with an existing non-empty directory
* DOWNLOAD_COMMAND
* URL
* GIT_REPOSITORY
* SVN_REPOSITORY
* HG_REPOSITORY
* CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
/usr/share/cmake-3.12/Modules/ExternalProject.cmake:3100 (_ep_add_download_command)
unit_tests/CMakeLists.txt:42 (ExternalProject_Add)
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Could NOT find Sphinx (missing: SPHINX_EXECUTABLE)
CMake Warning at docs/CMakeLists.txt:5 (message):
Skipping Doxygen documentation due to missing dependencies.
CMake Warning at docs/CMakeLists.txt:15 (message):
Skipping Sphinx documentation due to missing dependencies.
-- Configuring incomplete, errors occurred!
See also "*/openfast/src/openfast-git/build/CMakeFiles/CMakeOutput.log".
See also "*/openfast/src/openfast-git/build/CMakeFiles/CMakeError.log".
==> ERROR: A failure occurred in build().
Aborting...
Last edited by funkaddict (2018-10-13 17:05:48)
Offline
VCS_package_guidelines#Git_Submodules the missing CMakeLists.txt is in a seperate git repository the link explains how to initialize all sub modules before use.
Offline
the missing CMakeLists.txt is in a seperate git repository
Note that this is a bit of a quirk to this package which will generally not be needed.
I just note this as while it is not uncommon for each upstream source to have their own quirks, it is useful for learning to seperate what is stanard PKGBUILD boilerplate and what is an exception: needing an additional git repo is an exception, but so far everything else learned in this thread applies much more generally.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Sure I will do so. Furthermore of course I'd be happy if I could contribute to the AUR by adding openfast here. I just don't know if that makes sense as there is that little user group.
There are many packages in the AUR which have a limited userbase, we nevertheless welcome any well-written contributions (and you have been very responsive and thoughtful on that front). It will help that second user who wants to use this program, so why not?
...
Observers may note that I have, unexpectedly, not contributed to a thread about reviewing a PKGBUILD. Well, by the time I got to it, everyone else had said practically everything that needed to be said, and then you determined to take a break and approach it with a fresh mind. \o/
However, I do note that your build() function will currently cd to the git clone directory ("openfast") then create a subdirectory "build" to build the compiled binary and other build artifacts... which is a common pattern for newer build systems like cmake...
And then your check() and package() functions simply cd into "openfast" (the git sources) rather than "openfast/build" (the directory where cmake has configured your build, and in which the build() function itself operated).
This will result in errors once you get the additional submodule sources sorted out, and progress all the way to the check() and package() functions. So, you will want to ensure that you're in the directory you should be in.
...
FWIW, I usually prefer to create the build directory in one step, then cd all the way there.
mkdir -p ${pkgname}/build
cd ${pkgname}/build
It then becomes more obvious where you need to cd in later functions (which obviously do not need the mkdir though).
Also, mkdir -p because for a git package, users may re-run makepkg to pull new commits from upstream and then incrementally build (that is to say, only rebuild the objects which have been updated, as well as the final link stage which needs to link together the newly rebuilt objects as well as the old ones which have not changed).
mkdir without -p would mean they would get an error:
mkdir: cannot create directory ‘build’: File exists
(yes, mkdir is weird and calls it a file, deal with it)
...
It also means that repeatedly calling `makepkg --noextract` which skips the source download/extraction and prepare() step, but jumps straight to build(), cannot succeed. And there's a sort of unspoken assumption in the design of makepkg that this should in fact work. There's a reason these options makepkg options exist, and it would be nice if every PKGBUILD ever, was written in such a way that they cooperated nicely with said options.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
VCS_package_guidelines#Git_Submodules the missing CMakeLists.txt is in a seperate git repository the link explains how to initialize all sub modules before use.
Ok, thank you for the advice.
I did not understand where the CMakeLists.txt is actually located. When searching for it, there is a bunch of CMakeLists.txt´ s in the OpenFAST repositories on Github. How to actually adress them? I guess it makes no sense to call each of them individually like:
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
git::git+https://github.com/OpenFAST/openfast/blob/master/reg_tests/CMakeLists.txt"
git::git+https://github.com/OpenFAST/openfast/blob/master/unit_tests/CMakeLists.txt"
.
.
.
)
And for the second part:
prepare() {
cd something
git submodule init
git config submodule.mysubmodule.url $srcdir/mysubmodule
git submodule update
}
I would also have to call each CMakeLists.txt for each submodule. Can I replace the submodule names by a variable?
By the way I note that
\
is only necessary for cmake syntax not for bash.
loqs wrote:the missing CMakeLists.txt is in a seperate git repository
Note that this is a bit of a quirk to this package which will generally not be needed.
I just note this as while it is not uncommon for each upstream source to have their own quirks, it is useful for learning to seperate what is stanard PKGBUILD boilerplate and what is an exception: needing an additional git repo is an exception, but so far everything else learned in this thread applies much more generally.
Well, at this point it is still hard for me to distinguish what is a quirk and what is a standard in writing a PKGBUILD, so thank you for letting me know.
There are many packages in the AUR which have a limited userbase, we nevertheless welcome any well-written contributions (and you have been very responsive and thoughtful on that front). It will help that second user who wants to use this program, so why not? :)
That´ s nice to hear :)
However, I do note that your build() function will currently cd to the git clone directory ("openfast") then create a subdirectory "build" to build the compiled binary and other build artifacts... which is a common pattern for newer build systems like cmake...
And then your check() and package() functions simply cd into "openfast" (the git sources) rather than "openfast/build" (the directory where cmake has configured your build, and in which the build() function itself operated).
This will result in errors once you get the additional submodule sources sorted out, and progress all the way to the check() and package() functions. So, you will want to ensure that you're in the directory you should be in.
Agreed. I have already wondered about that.
...
FWIW, I usually prefer to create the build directory in one step, then cd all the way there.
mkdir -p ${pkgname}/build cd ${pkgname}/build
It then becomes more obvious where you need to cd in later functions (which obviously do not need the mkdir though).
Okay this makes sense to me. I will update accordingly. But I am wondering why I have written
cd "$pkgname"
before and can write now
cd ${pkgname}/build
without quotation marks. I assume, this comes from the bash syntax, where I am still a novice.
However my build function now looks like
build() {
mkdir -p ${pkgname}/build
cd ${pkgname}/build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
Also, mkdir -p because for a git package, users may re-run makepkg to pull new commits from upstream and then incrementally build (that is to say, only rebuild the objects which have been updated, as well as the final link stage which needs to link together the newly rebuilt objects as well as the old ones which have not changed).
mkdir without -p would mean they would get an error:
mkdir: cannot create directory ‘build’: File exists
(yes, mkdir is weird and calls it a file, deal with it)
Allright, so mkdir -p acts a hint for just updating instead of creating a new directory.
It also means that repeatedly calling `makepkg --noextract` which skips the source download/extraction and prepare() step, but jumps straight to build(), cannot succeed. And there's a sort of unspoken assumption in the design of makepkg that this should in fact work. There's a reason these options makepkg options exist, and it would be nice if every PKGBUILD ever, was written in such a way that they cooperated nicely with said options.
Okay, I´ll try to keep that in mind, for further PKGBUILDs to come ;)
Offline
$ git clone --recursive https://github.com/OpenFAST/openfast
Cloning into 'openfast'...
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 28682 (delta 9), reused 7 (delta 2), pack-reused 28657
Receiving objects: 100% (28682/28682), 141.23 MiB | 6.43 MiB/s, done.
Resolving deltas: 100% (16691/16691), done.
Submodule 'reg_tests/r-test' (https://github.com/openfast/r-test.git) registered for path 'reg_tests/r-test'
Submodule 'unit_tests/pfunit' (https://github.com/Goddard-Fortran-Ecosystem/pFUnit.git) registered for path 'unit_tests/pfunit'
Cloning into '/tmp/openfast/reg_tests/r-test'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 8306 (delta 3), reused 10 (delta 2), pack-reused 8291
Receiving objects: 100% (8306/8306), 675.99 MiB | 6.19 MiB/s, done.
Resolving deltas: 100% (6211/6211), done.
Cloning into '/tmp/openfast/unit_tests/pfunit'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 6838 (delta 2), reused 3 (delta 1), pack-reused 6829
Receiving objects: 100% (6838/6838), 11.52 MiB | 57.00 KiB/s, done.
Resolving deltas: 100% (4889/4889), done.
Submodule path 'reg_tests/r-test': checked out 'fcb492249a75136ea14a128fc6734e7a9f843c31'
Submodule path 'unit_tests/pfunit': checked out 'a192e82246b44e701446811a9792a530e4f250c7'
relevant part for submodules
Submodule 'reg_tests/r-test' (https://github.com/openfast/r-test.git) registered for path 'reg_tests/r-test'
Submodule 'unit_tests/pfunit' (https://github.com/Goddard-Fortran-Ecosystem/pFUnit.git) registered for path 'unit_tests/pfunit'
so adding the two sub modules gives
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git::git+https://github.com/openfast/r-test
'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
for prepare something like
prepare() {
${pkgname}
git submodule init
git config submodule.r-test.url "{$srcdir}"/r-test
git config submodule.pFUnit.url "{$srcdir}"/pFUnit
git submodule update
}
Offline
I did not understand where the CMakeLists.txt is actually located. When searching for it, there is a bunch of CMakeLists.txt´ s in the OpenFAST repositories on Github. How to actually adress them? I guess it makes no sense to call each of them individually like:
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
git::git+https://github.com/OpenFAST/openfast/blob/master/reg_tests/CMakeLists.txt"
git::git+https://github.com/OpenFAST/openfast/blob/master/unit_tests/CMakeLists.txt"
.
.
.
)And for the second part:
prepare() {
cd something
git submodule init
git config submodule.mysubmodule.url $srcdir/mysubmodule
git submodule update
}I would also have to call each CMakeLists.txt for each submodule. Can I replace the submodule names by a variable?
The missing CMakelists.txt is a symptom of the problem, not the entire problem.
CMake Error at reg_tests/CMakeLists.txt:60 (add_subdirectory):
The source directory
*/openfast/src/openfast-git/reg_tests/r-test
does not contain a CMakeLists.txt file.
compare src/openfast-git/reg-test/r-test with the content of that folder in openfast github repo.
src/openfast-git/reg-test/r-test lacks all files it should have.
openfast github repo uses a special feature of git called submodules which allows code from several repos to be treated as if they were in 1 repo.
makepkg git support doesn't handle submodules, so needs to be taken care of by manual commands.
The .gitmodules file in the top folder of the repo has all the info about the used extra repos.
look at https://github.com/OpenFAST/openfast/bl … gitmodules
It shows which repos hold the submodules and to which folder they correspond.
For git submodules in makepkg we need 2 things :
- the url to the submodule repo (so we can add it to source array)
- the exact name of the submodule (for the git config command in prepare)
both are present in .gitmodules
Which submodules does openfast use and what are there source urls ?
EDIT: loqs made it easy for you, but it still helps if you answer this,
--------------------------------------------------------------
By the way I note that
\
is only necessary for cmake syntax not for bash.
The backslash character has a special role in bash commands (other shells have it also, but may interpret things differently then bash).
see http://tldp.org/LDP/Bash-Beginners-Guid … 03_03.html
Last edited by Lone_Wolf (2018-10-15 11:50:24)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
relevant part for submodules
Submodule 'reg_tests/r-test' (https://github.com/openfast/r-test.git) registered for path 'reg_tests/r-test' Submodule 'unit_tests/pfunit' (https://github.com/Goddard-Fortran-Ecosystem/pFUnit.git) registered for path 'unit_tests/pfunit'
so adding the two sub modules gives
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}" 'git::git+https://github.com/openfast/r-test 'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
Thanks. For the sake of completeness I assume there is a single quote to be added in your second line:
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git::git+https://github.com/openfast/r-test'
'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
Furthermore, after consulting Bash Reference it seems that in this point there is no difference between a single and double quotation. But it does for the first line where $ is included. I am just adding this for my own understanding.
prepare() { ${pkgname} git submodule init git config submodule.r-test.url "{$srcdir}"/r-test git config submodule.pFUnit.url "{$srcdir}"/pFUnit git submodule update }
Is there a difference if I write
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/unit_tests/pFUnit
rather than
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/unit_tests/pFUnit.git
as described in https://github.com/OpenFAST/openfast/bl … gitmodules?
EDIT: loqs made it easy for you, but it still helps if you answer this,
It does, thank you.
I have implemented this all this:
# Maintainer: funkaddict <funkaddict@gmx.de>
_pkgname=openfast
pkgname=${_pkgname}-git
pkgver=1.0.0
pkgrel=1
pkgdesc="Aero-hydro-servo-elastic CAE-Tool for horizontal axis wind turbines from US NREL"
arch=('x86_64')
url="https://github.com/OpenFAST/${_pkgname}"
license=('Apache')
depends=('lapack' 'blas')
makedepends=('git' 'gcc-fortran' 'cmake' 'python' 'hdf5' 'yaml-cpp')
optdepends=('python' 'hdf5' 'yaml-cpp')
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git::git+https://github.com/openfast/r-test'
'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
md5sums=('SKIP')
provides=(${_pkgname})
conflicts=(${_pkgname})
prepare() {
${pkgname}
git submodule init
git config https://github.com/openfast/r-test "{$srcdir}"/reg_tests/r-test
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/unit_tests/pFUnit
git submodule update
}
pkgver() {
cd "$pkgname"
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
mkdir -p ${pkgname}/build
cd ${pkgname}/build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
check() {
cd "$pkgname/build"
make -k check
}
package() {
cd "$pkgname/build"
make DESTDIR="$pkgdir/" install
}
Edit:
Which runs into
==> ERROR: /home/user/packages/openfast/git is not a clone of https://github.com/Goddard-Fortran-Ecosystem/pFUnit
Aborting...
Which I don´ t understand. I must have made an error at a certain point concering the right directory
------------------
Edit:
When removing the git submodules and thus also -DBUILD_TESTING=ON building works completely but makepkg fails when it comes to
check() {
cd "$pkgname/build"
make -k check
}
Last edited by funkaddict (2018-10-15 14:21:02)
Offline
Doublepost
Last edited by funkaddict (2018-10-15 12:36:55)
Offline
My mistake
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git::git+https://github.com/openfast/r-test'
'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
renames both sub modules to git. When makepkg has detected after cloning https://github.com/openfast/r-test to the directory git that the directory git is not a clone of https://github.com/Goddard-Fortran-Ecosystem/pFUnit.
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git+https://github.com/openfast/r-test'
'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
Offline
Mod note: Moving thread to Creating & Modifying Packages.
Offline
My mistake
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}" 'git::git+https://github.com/openfast/r-test' 'git::git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
renames both sub modules to git. When makepkg has detected after cloning https://github.com/openfast/r-test to the directory git that the directory git is not a clone of https://github.com/Goddard-Fortran-Ecosystem/pFUnit.
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}" 'git+https://github.com/openfast/r-test' 'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
Okay thank you. I have looked into the Advanced bash scripting guide but still I am not quite sure where there is the difference between :: and +. I assume the latter variation of commands will not create a subdirectory git as it clones the source from github directly into the respective subdirectory. However I think therefore I have also to adapt
prepare() {
${pkgname}
git submodule init
git config https://github.com/openfast/r-test "{$srcdir}"/reg_tests/r-test
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/unit_tests/pFUnit
git submodule update
}
As I get an error here which reads:
==> ERROR: A failure occurred in prepare().
Aborting...
So I am changing the lines above to:
prepare() {
${pkgname}
git submodule init
git config https://github.com/openfast/r-test "{$srcdir}"/r-test
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/pFUnit
git submodule update
}
by updating the respective directories.
Edit: But I still run into the same error
The PKGBUILD how it looks currently:
# Maintainer: funkaddict <funkaddict@gmx.de>
_pkgname=openfast
pkgname=${_pkgname}-git
pkgver=1.0.0
pkgrel=1
pkgdesc="Aero-hydro-servo-elastic CAE-Tool for horizontal axis wind turbines from US NREL"
arch=('x86_64')
url="https://github.com/OpenFAST/${_pkgname}"
license=('Apache')
depends=('lapack' 'blas')
makedepends=('git' 'gcc-fortran' 'cmake' 'python' 'hdf5' 'yaml-cpp')
optdepends=('python' 'hdf5' 'yaml-cpp')
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git+https://github.com/openfast/r-test'
'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
md5sums=('SKIP'
'SKIP'
'SKIP')
provides=(${_pkgname})
conflicts=(${_pkgname})
prepare() {
${pkgname}
git submodule init
git config https://github.com/openfast/r-test "{$srcdir}"/r-test
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/pFUnit
git submodule update
}
pkgver() {
cd "$pkgname"
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
mkdir -p ${pkgname}/build
cd ${pkgname}/build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
check() {
cd "$pkgname/build"
make -k check
}
package() {
cd "$pkgname/build"
make DESTDIR="$pkgdir/" install
}
------------------
Edit #2:
As written in the correct paths would be
prepare() {
${pkgname}
git submodule init
git config [url]https://github.com/openfast/r-test[/url] "{$srcdir}"reg_tests/r-test
git config [url]https://github.com/Goddard-Fortran-Ecosystem/pFUnit[/url] "{$srcdir}"unit_tests/pfunit
git submodule update
}
notice: pfunit without capital letters. But this doesn´t solve the problem though.
Last edited by funkaddict (2018-10-16 08:17:01)
Offline
makepkg -rs
==> Making package: openfast-git 1.0.0-1 (Tue 16 Oct 2018 10:18:34 UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for conflicting packages...
Packages (4) libaec-1.0.2-1 gcc-fortran-8.2.1+20180831-1 hdf5-1.10.3-2
yaml-cpp-0.6.2-1
Total Installed Size: 46.74 MiB
:: Proceed with installation? [Y/n] y
(4/4) checking keys in keyring [######################] 100%
(4/4) checking package integrity [######################] 100%
(4/4) loading package files [######################] 100%
(4/4) checking for file conflicts [######################] 100%
(4/4) checking available disk space [######################] 100%
:: Processing package changes...
(1/4) installing gcc-fortran [######################] 100%
(2/4) installing libaec [######################] 100%
(3/4) installing hdf5 [######################] 100%
(4/4) installing yaml-cpp [######################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the info directory file...
==> Retrieving sources...
-> Updating openfast-git git repo...
Fetching origin
-> Updating r-test git repo...
Fetching origin
-> Updating pFUnit git repo...
Fetching origin
==> Validating source files with md5sums...
openfast-git ... Skipped
r-test ... Skipped
pFUnit ... Skipped
==> Extracting sources...
-> Creating working copy of openfast-git git repo...
Switched to a new branch 'makepkg'
-> Creating working copy of r-test git repo...
Checking out files: 100% (880/880), done.
Switched to a new branch 'makepkg'
-> Creating working copy of pFUnit git repo...
Cloning into 'pFUnit'...
done.
==> Starting prepare()...
/tmp/test/PKGBUILD: line 25: openfast-git: command not found
Indicating the issue is line 25 and an unrecognized command openfast-git
/tmp/test/PKGBUILD: line 25: openfast-git: command not found
line 25 is
${pkgname}
I missed the command cd
cd ${pkgname}
After putting the prepare function back to
prepare() {
cd ${pkgname}
git submodule init
git config submodule.r-test.url "{$srcdir}"/r-test
git config submodule.pFUnit.url "{$srcdir}"/pFUnit
git submodule update
}
makepkg should then fail in check()
Offline
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git+https://github.com/openfast/r-test'
'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
Okay thank you. I have looked into the Advanced bash scripting guide but still I am not quite sure where there is the difference between :: and +. I assume the latter variation of commands will not create a subdirectory git as it clones the source from github directly into the respective subdirectory. However I think therefore I have also to adapt
From the standpoint of bash source= is an array of 3 string elements .
Bash doesn't really care what's in the strings after it has processed them for parameter expansion and applied escape/quoting rules.
check man PKGBUILD to find out how the strings in source array are interpreted.
Hint: :: and + are described in different sections of that man page.
Last edited by Lone_Wolf (2018-10-16 11:40:48)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I missed the command cd
cd ${pkgname}
After putting the prepare function back to
prepare() { cd ${pkgname} git submodule init git config submodule.r-test.url "{$srcdir}"/r-test git config submodule.pFUnit.url "{$srcdir}"/pFUnit git submodule update }
makepkg should then fail in check()
Unfortunately not:
$ makepkg
==> Making package: openfast-git 1.0.0-1 (Tue 16 Oct 2018 06:08:04 PM CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Cloning openfast-git git repo...
Cloning into bare repository '/home/user/packages/openfast/openfast-git'...
remote: Enumerating objects: 129, done.
remote: Counting objects: 100% (129/129), done.
remote: Compressing objects: 100% (110/110), done.
remote: Total 31470 (delta 54), reused 55 (delta 19), pack-reused 31341
Receiving objects: 100% (31470/31470), 147.43 MiB | 1.72 MiB/s, done.
Resolving deltas: 100% (18670/18670), done.
-> Cloning r-test git repo...
Cloning into bare repository '/home/daniel/aur_packages/openfast/r-test'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 8446 (delta 3), reused 10 (delta 2), pack-reused 8431
Receiving objects: 100% (8446/8446), 676.01 MiB | 1.43 MiB/s, done.
Resolving deltas: 100% (6323/6323), done.
-> Cloning pFUnit git repo...
Cloning into bare repository '/home/daniel/aur_packages/openfast/pFUnit'...
remote: Enumerating objects: 117, done.
remote: Counting objects: 100% (117/117), done.
remote: Compressing objects: 100% (77/77), done.
remote: Total 6985 (delta 53), reused 67 (delta 35), pack-reused 6868
Receiving objects: 100% (6985/6985), 11.59 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (4964/4964), done.
==> Validating source files with md5sums...
openfast-git ... Skipped
r-test ... Skipped
pFUnit ... Skipped
==> Extracting sources...
-> Creating working copy of openfast-git git repo...
Cloning into 'openfast-git'...
done.
-> Creating working copy of r-test git repo...
Cloning into 'r-test'...
done.
Checking out files: 100% (880/880), done.
-> Creating working copy of pFUnit git repo...
Cloning into 'pFUnit'...
done.
==> Starting prepare()...
Submodule 'reg_tests/r-test' (https://github.com/openfast/r-test.git) registered for path 'reg_tests/r-test'
Submodule 'unit_tests/pfunit' (https://github.com/Goddard-Fortran-Ecosystem/pFUnit.git) registered for path 'unit_tests/pfunit'
error: invalid key: https://github.com/openfast/r-test
==> ERROR: A failure occurred in prepare().
Aborting...
PKGBUILD:
# Maintainer: funkaddict <funkaddict@gmx.de>
_pkgname=openfast
pkgname=${_pkgname}-git
pkgver=1.0.0
pkgrel=1
pkgdesc="Aero-hydro-servo-elastic CAE-Tool for horizontal axis wind turbines from US NREL"
arch=('x86_64')
url="https://github.com/OpenFAST/${_pkgname}"
license=('Apache')
depends=('lapack' 'blas')
makedepends=('git' 'gcc-fortran' 'cmake' 'python' 'hdf5' 'yaml-cpp')
optdepends=('python' 'hdf5' 'yaml-cpp')
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git+https://github.com/openfast/r-test'
'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
md5sums=('SKIP'
'SKIP'
'SKIP')
provides=(${_pkgname})
conflicts=(${_pkgname})
prepare() {
cd ${pkgname}
git submodule init
git config https://github.com/openfast/r-test "{$srcdir}"/r-test
git config https://github.com/Goddard-Fortran-Ecosystem/pFUnit "{$srcdir}"/pFUnit
git submodule update
}
pkgver() {
cd "$pkgname"
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
mkdir -p ${pkgname}/build
cd ${pkgname}/build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
check() {
cd "$pkgname/build"
make -k check
}
package() {
cd "$pkgname/build"
make DESTDIR="$pkgdir/" install
}
Offline
You quoted the following
After putting the prepare function back to
prepare() { cd ${pkgname} git submodule init git config submodule.r-test.url "{$srcdir}"/r-test git config submodule.pFUnit.url "{$srcdir}"/pFUnit git submodule update }
makepkg should then fail in check()
but that the prepare function in the PKGBUILd you posted does not match the one in the quote.
Offline
Because you're not using the prepare function he showed.
git config takes two arguments: the first argument is the foo.bar.baz entry in the gitconfig format, the second argument is the string literal that constitutes the value.
You tried to give it two values instead.
The purpose of the block in question is to configure "submodule.path/to/dir.url" to set the clone url for the submodule located in ${pkgname}/path/to/dir/.
You want to set the clone url, to clone from the repository that you retrieved in the PKGBUILD sources.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
From the standpoint of bash source= is an array of 3 string elements .
Bash doesn't really care what's in the strings after it has processed them for parameter expansion and applied escape/quoting rules.check man PKGBUILD to find out how the strings in source array are interpreted.
Hint: :: and + are described in different sections of that man page.
I didn't overlook this but marked it for myself to be read very soon.
but that the prepare function in the PKGBUILd you posted does not match the one in the quote.
My bad! I expected the
submodule.r-test.url
submodule.pFUnit.url
to be placeholders for the actual url. I didn't get it. However, thanks for correcting.
Because you're not using the prepare function he showed.
git config takes two arguments: the first argument is the foo.bar.baz entry in the gitconfig format, the second argument is the string literal that constitutes the value.
You tried to give it two values instead.
The purpose of the block in question is to configure "submodule.path/to/dir.url" to set the clone url for the submodule located in ${pkgname}/path/to/dir/.
You want to set the clone url, to clone from the repository that you retrieved in the PKGBUILD sources.
Thank you also for further elucidating eschwartz! I have read this 5 times now and it get's clearer and clearer I will read it tomorrow again and hopefully then all questions are gone at least for the prepare function.
makepkg should then fail in check()
Indeed, it does. That's where I'll continue tomorrow.
I am also think that checksums are not for nothing and skipping the checksums for all 3 packages are maybe not the best way. But for now I did not find anything about the checksums at github.
current state of the PKGBUILD:
# Maintainer: funkaddict <funkaddict@gmx.de>
_pkgname=openfast
pkgname=${_pkgname}-git
pkgver=1.0.0
pkgrel=1
pkgdesc="Aero-hydro-servo-elastic CAE-Tool for horizontal axis wind turbines from US NREL"
arch=('x86_64')
url="https://github.com/OpenFAST/${_pkgname}"
license=('Apache')
depends=('lapack' 'blas')
makedepends=('git' 'gcc-fortran' 'cmake' 'python' 'hdf5' 'yaml-cpp')
optdepends=('python' 'hdf5' 'yaml-cpp')
source=("$pkgname::git+https://github.com/OpenFAST/${_pkgname}"
'git+https://github.com/openfast/r-test'
'git+https://github.com/Goddard-Fortran-Ecosystem/pFUnit')
md5sums=('SKIP'
'SKIP'
'SKIP')
provides=(${_pkgname})
conflicts=(${_pkgname})
prepare() {
cd ${pkgname}
git submodule init
git config submodule.r-test.url "{$srcdir}"/r-test
git config submodule.pFUnit.url "{$srcdir}"/pFUnit
git submodule update
}
pkgver() {
cd "$pkgname"
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
mkdir -p ${pkgname}/build
cd ${pkgname}/build
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_DOCUMENTATION=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON
make
}
check() {
cd "$pkgname/build"
make -k check
}
package() {
cd "$pkgname/build"
make DESTDIR="$pkgdir/" install
}
Last edited by funkaddict (2018-10-16 20:42:59)
Offline
If you were using a specific commit that commit ID would be the checksum. For a git package you can not provide a checksum for future commits.
You can not checksum the git repo itself because of metadata that will change the checksum while not affecting the files that will be checked out.
Offline
If you were using a specific commit that commit ID would be the checksum. For a git package you can not provide a checksum for future commits.
You can not checksum the git repo itself because of metadata that will change the checksum while not affecting the files that will be checked out.
Oh, of course. Yes that makes a lot of sense.
How to actually correctly implement the check function? I have found only very vague information in the man PKGBUILD. Also the Wiki wasn´ t helpful here. I assume I have to cd to the correct directory as "$pkgname/build" doesn´ t exist. Is
make -k check
the right function to work with?
Edit:
Okay I see. This is a make function so. I have to look for the answer in https://www.gnu.org/software/make/manual/make.html
Last edited by funkaddict (2018-10-17 12:25:43)
Offline
==> Starting check()...
make: *** No rule to make target 'check'.
I would suggest looking in build/Makefile as well as https://github.com/OpenFAST/openfast/bl … /README.md for which target you should be calling.
Edit:
...
checkdepends=('python-numpy')
...
check() {
cd "$pkgname/build"
make test
}
`extra-x86_64-build`
==> Starting check()...
Running tests...
Test project /build/openfast-git/src/openfast-git/build
Start 1: AWT_YFix_WSt
1/35 Test #1: AWT_YFix_WSt .............................***Failed 0.71 sec
Start 2: AWT_WSt_StartUp_HighSpShutDown
2/35 Test #2: AWT_WSt_StartUp_HighSpShutDown ...........***Failed 17.44 sec
Start 3: AWT_YFree_WSt
3/35 Test #3: AWT_YFree_WSt ............................***Failed 20.62 sec
Start 4: AWT_YFree_WTurb
4/35 Test #4: AWT_YFree_WTurb ..........................***Failed 1.25 sec
Start 5: AWT_WSt_StartUpShutDown
5/35 Test #5: AWT_WSt_StartUpShutDown ..................***Failed 25.28 sec
Start 6: AOC_WSt
6/35 Test #6: AOC_WSt .................................. Passed 13.03 sec
Start 7: AOC_YFree_WTurb
7/35 Test #7: AOC_YFree_WTurb ..........................***Failed 75.79 sec
Start 8: AOC_YFix_WSt
8/35 Test #8: AOC_YFix_WSt .............................***Failed 21.50 sec
Start 9: UAE_Dnwind_YRamp_WSt
9/35 Test #9: UAE_Dnwind_YRamp_WSt .....................***Failed 54.94 sec
Start 10: UAE_Upwind_Rigid_WRamp_PwrCurve
10/35 Test #10: UAE_Upwind_Rigid_WRamp_PwrCurve .......... Passed 34.05 sec
Start 11: WP_VSP_WTurb_PitchFail
11/35 Test #11: WP_VSP_WTurb_PitchFail ...................***Failed 1.03 sec
Start 12: WP_VSP_ECD
12/35 Test #12: WP_VSP_ECD ...............................***Failed 15.83 sec
Start 13: WP_VSP_WTurb
13/35 Test #13: WP_VSP_WTurb .............................***Failed 45.39 sec
Start 14: SWRT_YFree_VS_EDG01
14/35 Test #14: SWRT_YFree_VS_EDG01 ......................***Failed 120.17 sec
Start 15: SWRT_YFree_VS_EDC01
15/35 Test #15: SWRT_YFree_VS_EDC01 ......................***Failed 3.83 sec
Start 16: SWRT_YFree_VS_WTurb
16/35 Test #16: SWRT_YFree_VS_WTurb ......................***Failed 3.86 sec
Start 17: 5MW_Land_DLL_WTurb
17/35 Test #17: 5MW_Land_DLL_WTurb .......................***Failed 3.36 sec
Start 18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr
18/35 Test #18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr ...........***Failed 3.37 sec
Start 19: 5MW_OC3Trpd_DLL_WSt_WavesReg
19/35 Test #19: 5MW_OC3Trpd_DLL_WSt_WavesReg .............***Failed 3.12 sec
Start 20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth
20/35 Test #20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth ...***Failed 3.37 sec
Start 21: 5MW_ITIBarge_DLL_WTurb_WavesIrr
21/35 Test #21: 5MW_ITIBarge_DLL_WTurb_WavesIrr ..........***Failed 3.35 sec
Start 22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti
22/35 Test #22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti ....***Failed 3.37 sec
Start 23: 5MW_OC3Spar_DLL_WTurb_WavesIrr
23/35 Test #23: 5MW_OC3Spar_DLL_WTurb_WavesIrr ...........***Failed 3.37 sec
Start 24: 5MW_OC4Semi_WSt_WavesWN
24/35 Test #24: 5MW_OC4Semi_WSt_WavesWN ..................***Failed 3.13 sec
Start 25: 5MW_Land_BD_DLL_WTurb
25/35 Test #25: 5MW_Land_BD_DLL_WTurb ....................***Failed 3.39 sec
Start 26: WP_Stationary_Linear
26/35 Test #26: WP_Stationary_Linear ..................... Passed 0.57 sec
Start 27: Ideal_Beam_Fixed_Free_Linear
27/35 Test #27: Ideal_Beam_Fixed_Free_Linear ............. Passed 0.84 sec
Start 28: Ideal_Beam_Free_Free_Linear
28/35 Test #28: Ideal_Beam_Free_Free_Linear .............. Passed 0.86 sec
Start 29: 5MW_Land_BD_Linear
29/35 Test #29: 5MW_Land_BD_Linear ....................... Passed 40.06 sec
Start 30: bd_5MW_dynamic
30/35 Test #30: bd_5MW_dynamic ........................... Passed 19.59 sec
Start 31: bd_curved_beam
31/35 Test #31: bd_curved_beam ........................... Passed 0.14 sec
Start 32: bd_isotropic_rollup
32/35 Test #32: bd_isotropic_rollup ...................... Passed 0.12 sec
Start 33: bd_static_cantilever_beam
33/35 Test #33: bd_static_cantilever_beam ................ Passed 0.11 sec
Start 34: bd_static_twisted_with_k1
34/35 Test #34: bd_static_twisted_with_k1 ................ Passed 0.11 sec
Start 35: beamdyn_utest
35/35 Test #35: beamdyn_utest ............................ Passed 0.00 sec
34% tests passed, 23 tests failed out of 35
Label Time Summary:
aerodyn14 = 78.19 sec*proc (7 tests)
aerodyn15 = 406.95 sec*proc (19 tests)
beamdyn = 65.22 sec*proc (9 tests)
dynamic = 19.59 sec*proc (1 test)
elastodyn = 481.75 sec*proc (25 tests)
hydrodyn = 23.07 sec*proc (7 tests)
linear = 42.34 sec*proc (4 tests)
map = 10.09 sec*proc (3 tests)
moordyn = 3.13 sec*proc (1 test)
openfast = 526.90 sec*proc (29 tests)
servodyn = 524.62 sec*proc (26 tests)
static = 0.48 sec*proc (4 tests)
subdyn = 9.86 sec*proc (3 tests)
Total Test time (real) = 546.99 sec
The following tests FAILED:
1 - AWT_YFix_WSt (Failed)
2 - AWT_WSt_StartUp_HighSpShutDown (Failed)
3 - AWT_YFree_WSt (Failed)
4 - AWT_YFree_WTurb (Failed)
5 - AWT_WSt_StartUpShutDown (Failed)
7 - AOC_YFree_WTurb (Failed)
8 - AOC_YFix_WSt (Failed)
9 - UAE_Dnwind_YRamp_WSt (Failed)
11 - WP_VSP_WTurb_PitchFail (Failed)
12 - WP_VSP_ECD (Failed)
13 - WP_VSP_WTurb (Failed)
14 - SWRT_YFree_VS_EDG01 (Failed)
15 - SWRT_YFree_VS_EDC01 (Failed)
16 - SWRT_YFree_VS_WTurb (Failed)
17 - 5MW_Land_DLL_WTurb (Failed)
18 - 5MW_OC3Mnpl_DLL_WTurb_WavesIrr (Failed)
19 - 5MW_OC3Trpd_DLL_WSt_WavesReg (Failed)
20 - 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth (Failed)
21 - 5MW_ITIBarge_DLL_WTurb_WavesIrr (Failed)
22 - 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti (Failed)
23 - 5MW_OC3Spar_DLL_WTurb_WavesIrr (Failed)
24 - 5MW_OC4Semi_WSt_WavesWN (Failed)
25 - 5MW_Land_BD_DLL_WTurb (Failed)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
==> ERROR: A failure occurred in check().
Aborting...
Anyone able to reproduce or any insight on the cause?
Last edited by loqs (2018-10-17 16:27:46)
Offline
==> Starting check()... make: *** No rule to make target 'check'.
I would suggest looking in build/Makefile as well as https://github.com/OpenFAST/openfast/bl … /README.md for which target you should be calling.
Ah okay, now I got it. I didn´ t understand that the check function to be called here is the one described in the reg_tests. There were so many loose ends, and sometimes I am struggling to tie up the right ones So the check() function in PKGBUILD is already a function which provides to call a test provided or recommended by upstream.
Dependencies required to run the regression test suite are
Python 3+
Numpy
CMake and CTest
matplotlib (optional)
So Python is already part of the makedepends, as well as CMake. So you are adding Numpy as a checkdepend. Is CTest allways part of CMake and thus not to be mentioned in checkdepends?
Edit:
... checkdepends=('python-numpy') ... check() { cd "$pkgname/build" make test }
`extra-x86_64-build`
==> Starting check()... Running tests... Test project /build/openfast-git/src/openfast-git/build Start 1: AWT_YFix_WSt 1/35 Test #1: AWT_YFix_WSt .............................***Failed 0.71 sec Start 2: AWT_WSt_StartUp_HighSpShutDown 2/35 Test #2: AWT_WSt_StartUp_HighSpShutDown ...........***Failed 17.44 sec Start 3: AWT_YFree_WSt 3/35 Test #3: AWT_YFree_WSt ............................***Failed 20.62 sec Start 4: AWT_YFree_WTurb 4/35 Test #4: AWT_YFree_WTurb ..........................***Failed 1.25 sec Start 5: AWT_WSt_StartUpShutDown 5/35 Test #5: AWT_WSt_StartUpShutDown ..................***Failed 25.28 sec Start 6: AOC_WSt 6/35 Test #6: AOC_WSt .................................. Passed 13.03 sec Start 7: AOC_YFree_WTurb 7/35 Test #7: AOC_YFree_WTurb ..........................***Failed 75.79 sec Start 8: AOC_YFix_WSt 8/35 Test #8: AOC_YFix_WSt .............................***Failed 21.50 sec Start 9: UAE_Dnwind_YRamp_WSt 9/35 Test #9: UAE_Dnwind_YRamp_WSt .....................***Failed 54.94 sec Start 10: UAE_Upwind_Rigid_WRamp_PwrCurve 10/35 Test #10: UAE_Upwind_Rigid_WRamp_PwrCurve .......... Passed 34.05 sec Start 11: WP_VSP_WTurb_PitchFail 11/35 Test #11: WP_VSP_WTurb_PitchFail ...................***Failed 1.03 sec Start 12: WP_VSP_ECD 12/35 Test #12: WP_VSP_ECD ...............................***Failed 15.83 sec Start 13: WP_VSP_WTurb 13/35 Test #13: WP_VSP_WTurb .............................***Failed 45.39 sec Start 14: SWRT_YFree_VS_EDG01 14/35 Test #14: SWRT_YFree_VS_EDG01 ......................***Failed 120.17 sec Start 15: SWRT_YFree_VS_EDC01 15/35 Test #15: SWRT_YFree_VS_EDC01 ......................***Failed 3.83 sec Start 16: SWRT_YFree_VS_WTurb 16/35 Test #16: SWRT_YFree_VS_WTurb ......................***Failed 3.86 sec Start 17: 5MW_Land_DLL_WTurb 17/35 Test #17: 5MW_Land_DLL_WTurb .......................***Failed 3.36 sec Start 18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr 18/35 Test #18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr ...........***Failed 3.37 sec Start 19: 5MW_OC3Trpd_DLL_WSt_WavesReg 19/35 Test #19: 5MW_OC3Trpd_DLL_WSt_WavesReg .............***Failed 3.12 sec Start 20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth 20/35 Test #20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth ...***Failed 3.37 sec Start 21: 5MW_ITIBarge_DLL_WTurb_WavesIrr 21/35 Test #21: 5MW_ITIBarge_DLL_WTurb_WavesIrr ..........***Failed 3.35 sec Start 22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti 22/35 Test #22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti ....***Failed 3.37 sec Start 23: 5MW_OC3Spar_DLL_WTurb_WavesIrr 23/35 Test #23: 5MW_OC3Spar_DLL_WTurb_WavesIrr ...........***Failed 3.37 sec Start 24: 5MW_OC4Semi_WSt_WavesWN 24/35 Test #24: 5MW_OC4Semi_WSt_WavesWN ..................***Failed 3.13 sec Start 25: 5MW_Land_BD_DLL_WTurb 25/35 Test #25: 5MW_Land_BD_DLL_WTurb ....................***Failed 3.39 sec Start 26: WP_Stationary_Linear 26/35 Test #26: WP_Stationary_Linear ..................... Passed 0.57 sec Start 27: Ideal_Beam_Fixed_Free_Linear 27/35 Test #27: Ideal_Beam_Fixed_Free_Linear ............. Passed 0.84 sec Start 28: Ideal_Beam_Free_Free_Linear 28/35 Test #28: Ideal_Beam_Free_Free_Linear .............. Passed 0.86 sec Start 29: 5MW_Land_BD_Linear 29/35 Test #29: 5MW_Land_BD_Linear ....................... Passed 40.06 sec Start 30: bd_5MW_dynamic 30/35 Test #30: bd_5MW_dynamic ........................... Passed 19.59 sec Start 31: bd_curved_beam 31/35 Test #31: bd_curved_beam ........................... Passed 0.14 sec Start 32: bd_isotropic_rollup 32/35 Test #32: bd_isotropic_rollup ...................... Passed 0.12 sec Start 33: bd_static_cantilever_beam 33/35 Test #33: bd_static_cantilever_beam ................ Passed 0.11 sec Start 34: bd_static_twisted_with_k1 34/35 Test #34: bd_static_twisted_with_k1 ................ Passed 0.11 sec Start 35: beamdyn_utest 35/35 Test #35: beamdyn_utest ............................ Passed 0.00 sec 34% tests passed, 23 tests failed out of 35 Label Time Summary: aerodyn14 = 78.19 sec*proc (7 tests) aerodyn15 = 406.95 sec*proc (19 tests) beamdyn = 65.22 sec*proc (9 tests) dynamic = 19.59 sec*proc (1 test) elastodyn = 481.75 sec*proc (25 tests) hydrodyn = 23.07 sec*proc (7 tests) linear = 42.34 sec*proc (4 tests) map = 10.09 sec*proc (3 tests) moordyn = 3.13 sec*proc (1 test) openfast = 526.90 sec*proc (29 tests) servodyn = 524.62 sec*proc (26 tests) static = 0.48 sec*proc (4 tests) subdyn = 9.86 sec*proc (3 tests) Total Test time (real) = 546.99 sec The following tests FAILED: 1 - AWT_YFix_WSt (Failed) 2 - AWT_WSt_StartUp_HighSpShutDown (Failed) 3 - AWT_YFree_WSt (Failed) 4 - AWT_YFree_WTurb (Failed) 5 - AWT_WSt_StartUpShutDown (Failed) 7 - AOC_YFree_WTurb (Failed) 8 - AOC_YFix_WSt (Failed) 9 - UAE_Dnwind_YRamp_WSt (Failed) 11 - WP_VSP_WTurb_PitchFail (Failed) 12 - WP_VSP_ECD (Failed) 13 - WP_VSP_WTurb (Failed) 14 - SWRT_YFree_VS_EDG01 (Failed) 15 - SWRT_YFree_VS_EDC01 (Failed) 16 - SWRT_YFree_VS_WTurb (Failed) 17 - 5MW_Land_DLL_WTurb (Failed) 18 - 5MW_OC3Mnpl_DLL_WTurb_WavesIrr (Failed) 19 - 5MW_OC3Trpd_DLL_WSt_WavesReg (Failed) 20 - 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth (Failed) 21 - 5MW_ITIBarge_DLL_WTurb_WavesIrr (Failed) 22 - 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti (Failed) 23 - 5MW_OC3Spar_DLL_WTurb_WavesIrr (Failed) 24 - 5MW_OC4Semi_WSt_WavesWN (Failed) 25 - 5MW_Land_BD_DLL_WTurb (Failed) Errors while running CTest make: *** [Makefile:73: test] Error 8 ==> ERROR: A failure occurred in check(). Aborting...
Anyone able to reproduce or any insight on the cause?
I can reproduce this:
==> Starting check()...
Running tests...
Test project /home/user/packages/openfast/src/openfast-git/build
Start 1: AWT_YFix_WSt
1/35 Test #1: AWT_YFix_WSt .............................***Failed 0.96 sec
Start 2: AWT_WSt_StartUp_HighSpShutDown
2/35 Test #2: AWT_WSt_StartUp_HighSpShutDown ...........***Failed 16.45 sec
Start 3: AWT_YFree_WSt
3/35 Test #3: AWT_YFree_WSt ............................***Failed 19.47 sec
Start 4: AWT_YFree_WTurb
4/35 Test #4: AWT_YFree_WTurb ..........................***Failed 1.44 sec
Start 5: AWT_WSt_StartUpShutDown
5/35 Test #5: AWT_WSt_StartUpShutDown ..................***Failed 24.41 sec
Start 6: AOC_WSt
6/35 Test #6: AOC_WSt .................................. Passed 11.78 sec
Start 7: AOC_YFree_WTurb
7/35 Test #7: AOC_YFree_WTurb ..........................***Failed 72.13 sec
Start 8: AOC_YFix_WSt
8/35 Test #8: AOC_YFix_WSt .............................***Failed 20.31 sec
Start 9: UAE_Dnwind_YRamp_WSt
9/35 Test #9: UAE_Dnwind_YRamp_WSt .....................***Failed 53.37 sec
Start 10: UAE_Upwind_Rigid_WRamp_PwrCurve
10/35 Test #10: UAE_Upwind_Rigid_WRamp_PwrCurve .......... Passed 33.10 sec
Start 11: WP_VSP_WTurb_PitchFail
11/35 Test #11: WP_VSP_WTurb_PitchFail ...................***Failed 1.24 sec
Start 12: WP_VSP_ECD
12/35 Test #12: WP_VSP_ECD ...............................***Failed 14.43 sec
Start 13: WP_VSP_WTurb
13/35 Test #13: WP_VSP_WTurb .............................***Failed 42.60 sec
Start 14: SWRT_YFree_VS_EDG01
14/35 Test #14: SWRT_YFree_VS_EDG01 ......................***Failed 113.94 sec
Start 15: SWRT_YFree_VS_EDC01
15/35 Test #15: SWRT_YFree_VS_EDC01 ......................***Failed 4.04 sec
Start 16: SWRT_YFree_VS_WTurb
16/35 Test #16: SWRT_YFree_VS_WTurb ......................***Failed 4.07 sec
Start 17: 5MW_Land_DLL_WTurb
17/35 Test #17: 5MW_Land_DLL_WTurb .......................***Failed 3.34 sec
Start 18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr
18/35 Test #18: 5MW_OC3Mnpl_DLL_WTurb_WavesIrr ...........***Failed 3.34 sec
Start 19: 5MW_OC3Trpd_DLL_WSt_WavesReg
19/35 Test #19: 5MW_OC3Trpd_DLL_WSt_WavesReg .............***Failed 3.12 sec
Start 20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth
20/35 Test #20: 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth ...***Failed 3.33 sec
Start 21: 5MW_ITIBarge_DLL_WTurb_WavesIrr
21/35 Test #21: 5MW_ITIBarge_DLL_WTurb_WavesIrr ..........***Failed 3.32 sec
Start 22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti
22/35 Test #22: 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti ....***Failed 3.35 sec
Start 23: 5MW_OC3Spar_DLL_WTurb_WavesIrr
23/35 Test #23: 5MW_OC3Spar_DLL_WTurb_WavesIrr ...........***Failed 3.33 sec
Start 24: 5MW_OC4Semi_WSt_WavesWN
24/35 Test #24: 5MW_OC4Semi_WSt_WavesWN ..................***Failed 3.11 sec
Start 25: 5MW_Land_BD_DLL_WTurb
25/35 Test #25: 5MW_Land_BD_DLL_WTurb ....................***Failed 3.36 sec
Start 26: WP_Stationary_Linear
26/35 Test #26: WP_Stationary_Linear ..................... Passed 0.54 sec
Start 27: Ideal_Beam_Fixed_Free_Linear
27/35 Test #27: Ideal_Beam_Fixed_Free_Linear ............. Passed 0.79 sec
Start 28: Ideal_Beam_Free_Free_Linear
28/35 Test #28: Ideal_Beam_Free_Free_Linear .............. Passed 0.82 sec
Start 29: 5MW_Land_BD_Linear
29/35 Test #29: 5MW_Land_BD_Linear ....................... Passed 40.21 sec
Start 30: bd_5MW_dynamic
30/35 Test #30: bd_5MW_dynamic ........................... Passed 19.18 sec
Start 31: bd_curved_beam
31/35 Test #31: bd_curved_beam ........................... Passed 0.13 sec
Start 32: bd_isotropic_rollup
32/35 Test #32: bd_isotropic_rollup ...................... Passed 0.11 sec
Start 33: bd_static_cantilever_beam
33/35 Test #33: bd_static_cantilever_beam ................ Passed 0.10 sec
Start 34: bd_static_twisted_with_k1
34/35 Test #34: bd_static_twisted_with_k1 ................ Passed 0.11 sec
Start 35: beamdyn_utest
35/35 Test #35: beamdyn_utest ............................ Passed 0.00 sec
34% tests passed, 23 tests failed out of 35
Label Time Summary:
aerodyn14 = 76.18 sec*proc (7 tests)
aerodyn15 = 387.70 sec*proc (19 tests)
beamdyn = 64.81 sec*proc (9 tests)
dynamic = 19.18 sec*proc (1 test)
elastodyn = 460.51 sec*proc (25 tests)
hydrodyn = 22.89 sec*proc (7 tests)
linear = 42.35 sec*proc (4 tests)
map = 10.00 sec*proc (3 tests)
moordyn = 3.11 sec*proc (1 test)
openfast = 505.69 sec*proc (29 tests)
servodyn = 503.55 sec*proc (26 tests)
static = 0.45 sec*proc (4 tests)
subdyn = 9.79 sec*proc (3 tests)
Total Test time (real) = 525.34 sec
The following tests FAILED:
1 - AWT_YFix_WSt (Failed)
2 - AWT_WSt_StartUp_HighSpShutDown (Failed)
3 - AWT_YFree_WSt (Failed)
4 - AWT_YFree_WTurb (Failed)
5 - AWT_WSt_StartUpShutDown (Failed)
7 - AOC_YFree_WTurb (Failed)
8 - AOC_YFix_WSt (Failed)
9 - UAE_Dnwind_YRamp_WSt (Failed)
11 - WP_VSP_WTurb_PitchFail (Failed)
12 - WP_VSP_ECD (Failed)
13 - WP_VSP_WTurb (Failed)
14 - SWRT_YFree_VS_EDG01 (Failed)
15 - SWRT_YFree_VS_EDC01 (Failed)
16 - SWRT_YFree_VS_WTurb (Failed)
17 - 5MW_Land_DLL_WTurb (Failed)
18 - 5MW_OC3Mnpl_DLL_WTurb_WavesIrr (Failed)
19 - 5MW_OC3Trpd_DLL_WSt_WavesReg (Failed)
20 - 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth (Failed)
21 - 5MW_ITIBarge_DLL_WTurb_WavesIrr (Failed)
22 - 5MW_TLP_DLL_WTurb_WavesIrr_WavesMulti (Failed)
23 - 5MW_OC3Spar_DLL_WTurb_WavesIrr (Failed)
24 - 5MW_OC4Semi_WSt_WavesWN (Failed)
25 - 5MW_Land_BD_DLL_WTurb (Failed)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
==> ERROR: A failure occurred in check().
Aborting...
Edit:
I am not sure if I have overlooked something in the https://openfast.readthedocs.io/en/mast … index.html documentation. I will have a closer look there tomorrow. If I cannot find anything. I would report our results upstream. But in the meanwhile somebody might elucidate the following general question to me:
We have written the PKGBUILD above. So besides the test function everything is fine now. Makepkg compiles OpenFAST according to the PKGBUILD and outputs a respective .pkg.tar.xz -package which can be installed via pacman. Is this correct?
Last edited by funkaddict (2018-10-18 14:10:34)
Offline
We have written the PKGBUILD above. So besides the test function everything is fine now. Makepkg compiles OpenFAST according to the PKGBUILD and outputs a respective .pkg.tar.xz -package which can be installed via pacman. Is this correct?
If the test function passed then the package function would produce produce the package provided it succeeded.
check() {
cd "$pkgname/build"
make test || true
}
If make test fails return success anyway so the package function can be checked.
Offline
If make test fails return success anyway so the package function can be checked.
Can't you just run "makepkg --repackage" to test the package function if the check failed? (or use --nocheck)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Testing openfast looks a bit tricky and appears to involve 2 different methods, check sections 5.2.1 and 5.2.2.
For now I suggest to comment out the check() function with a note that for time being no tests are run during build.
There are some dependencies (atleast 2 ) reported missing during build() , check the build log for details.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline