Error with /usr/bin/makepkg: line 434
Closed this issue · 5 comments
I have strange error with makepkg file with scotch build by cmake:
[520/520] Linking C executable src\check\test_scotch_dgraph_redist.exe
==> Starting package_mingw-w64-x86_64-scotch()...
/usr/bin/makepkg: line 434: package_mingw-w64-x86_64-scotch: command not found
==> ERROR: A failure occurred in package_mingw-w64-x86_64-scotch().
Aborting...
adaptation from archlinux: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=scotch
Please provide your PKGBUILD file.
# Contributor: Oleg A. Khlybov <fougas@mail.ru>
_realname=scotch
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-${_realname}-int64")
pkgdesc='Graph partitioning and sparse matrix ordering package (mingw-w64)'
pkgver=7.0.5
pkgrel=1
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-libsystre"
"${MINGW_PACKAGE_PREFIX}-msmpi")
makedepends=("bison"
"flex"
"${MINGW_PACKAGE_PREFIX}-cc")
options=('!strip' 'staticlibs')
license=('spdx:CECILL-C')
url="https://www.labri.fr/perso/pelegrin/scotch/"
source=("https://gitlab.inria.fr/scotch/scotch/-/archive/v${pkgver}/${_realname}-v${pkgver}.tar.gz"
"Makefile.idx32.inc"
"Makefile.idx64.inc"
"0002-pipe-fix.patch"
"0004-dummysizes-regex.patch")
sha256sums=('385507a9712bb9057497b9ac3f24ad2132bd3f3f8c7a62e78324fc58f2a0079b'
'4221b69dcc53230ff4d6bc18e3982f6d39971a99fc17f4dab609fc19b99d8a30'
'c52bf0598332d8139a37606e7ea9376b7f841059047c0c977b205a763fc7e97a'
'b6e76b1d2f35b3fcc771b97a35a468d6314ee3a619defef18b82fc7654638a49'
'15dd82d4c7b118e08316df4242d647bdaa1f180ff143ee33fe84633c97aac111')
prepare() {
sed -i 's/DESTINATION man/DESTINATION share\/man/g' ${_realname}-v${pkgver}/CMakeLists.txt
cd "${srcdir}/${_realname}-v${pkgver}"
for p in ${source[*]:3}; do
patch -p1 -i "$srcdir/$p"
done
}
build() {
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-GNinja \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DCMAKE_CXX_STANDARD_LIBRARIES="-lz -lgnurx -lscotcherr" \
"${extra_config[@]}" \
-DBUILD_SHARED_LIBS=OFF \
-DINSTALL_METIS_HEADERS=ON \
-DBUILD_PTSCOTCH=ON \
-DBUILD_LIBESMUMPS=ON \
-DBUILD_LIBSCOTCHMETIS=OFF \
../${_realname}-v${pkgver}
${MINGW_PREFIX}/bin/cmake --build .
}
#check() {
# cd "${srcdir}/build-${MSYSTEM}"
# make -C build test
#}
package() {
cd "${srcdir}"/build-${MSYSTEM}
#DESTDIR=${pkgdir} cmake --build . --target install
#install -Dm644 "${srcdir}"/${_realname}-v${pkgver}/doc/CeCILL-C_V1-en.txt "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
DESTDIR=${pkgdir} cmake --install build
}
You have to add package function for each package. In this case, the package function name should be package_scotch()
and package_scotch-int64()
. Do not mix underscore with hyphen. Then add the contents of mingw-w64-splitpkg-wrappers-1.0.template
file at last. See any other PKGBUILD file where split packages are done, e.g. pango.
The technique is documented here https://man.archlinux.org/man/PKGBUILD.5#PACKAGE_SPLITTING
Is it possible to unify the names now, like openblas?:
openblas
and openblas64
scotch
and scotch-int64
-> scotch
and scotch64
Is it possible to unify the names now, like openblas?
Yeah, sure. Just check if the package function is correct accordingly. Otherwise, makepkg will be sad :)