You are not logged in.

#26 2018-10-13 16:55:07

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

Trilby wrote:
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.

lquidfire wrote:

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.

Lone_Wolf wrote:

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 understood

cmake ../   \
  -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.

Lone_Wolf wrote:

------------------------
Dependencies

gcc 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.

Lone_Wolf wrote:

gcc-fortran and cmake should stay and since you're building a -git pacakge git should be added to makedepends.

Done

Lone_Wolf wrote:

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!

Lone_Wolf wrote:

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

#27 2018-10-13 18:41:43

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

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

#28 2018-10-13 19:20:32

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,444
Website

Re: How to install a program from github

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.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#29 2018-10-14 02:38:47

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: How to install a program from github

funkaddict wrote:

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? smile

...

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. tongue \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

#30 2018-10-15 07:47:16

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:

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.


Trilby wrote:
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.



eschwartz wrote:

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 :)

eschwartz wrote:

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.

...

eschwartz wrote:

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
}
eschwartz wrote:

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.

eschwartz wrote:

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

#31 2018-10-15 11:20:00

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

$ 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

#32 2018-10-15 11:48:41

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: How to install a program from github

funkaddict wrote:

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,


--------------------------------------------------------------

funkaddict wrote:

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.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#33 2018-10-15 12:15:54

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:

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.

loqs wrote:
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?

Lone_Wolf wrote:

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 hmm

------------------

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

#34 2018-10-15 12:36:37

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

Doublepost

Last edited by funkaddict (2018-10-15 12:36:55)

Offline

#35 2018-10-15 15:19:29

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

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

#36 2018-10-16 05:07:51

x33a
Forum Fellow
Registered: 2009-08-15
Posts: 4,587

Re: How to install a program from github

Mod note: Moving thread to Creating & Modifying Packages.

Offline

#37 2018-10-16 07:18:09

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:

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 hmm

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

#38 2018-10-16 10:37:58

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

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

#39 2018-10-16 11:40:17

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: How to install a program from github

    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.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#40 2018-10-16 16:19:15

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:

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

#41 2018-10-16 16:33:15

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

You quoted the following

loqs wrote:

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

#42 2018-10-16 16:34:35

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: How to install a program from github

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

#43 2018-10-16 20:39:30

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

Lone_Wolf wrote:

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.

loqs wrote:

but that the prepare function in the PKGBUILd you posted does not match the one in the quote.

My bad! roll I expected the

submodule.r-test.url
submodule.pFUnit.url

to be placeholders for the actual url. I didn't get it. hmm However, thanks for correcting.

eschwartz wrote:

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 wink I will read it tomorrow again and hopefully then all questions are gone at least for the prepare function.

loqs wrote:

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

#44 2018-10-16 21:05:58

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

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

#45 2018-10-17 12:18:06

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:

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

#46 2018-10-17 13:10:52

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

==> 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

#47 2018-10-18 08:35:14

funkaddict
Member
Registered: 2018-08-13
Posts: 106

Re: How to install a program from github

loqs wrote:
==> 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 wink 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?

loqs wrote:

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

#48 2018-10-18 16:19:20

loqs
Member
Registered: 2014-03-06
Posts: 17,195

Re: How to install a program from github

funkaddict wrote:

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

#49 2018-10-18 16:51:55

progandy
Member
Registered: 2012-05-17
Posts: 5,184

Re: How to install a program from github

loqs wrote:

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 ' |

Online

#50 2018-10-18 18:43:20

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: How to install a program from github

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.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

Board footer

Powered by FluxBB