File PKGBUILD of Package linphoneqt
# Fix for error: bsdtar: Failed to set default locale
# LANG=en_US.UTF-8 # not available, use C or POSIX
LANG=C
LC_ALL=${LANG}
# Get some information about the machine we are building on:
_numberOfProcessorsOnMachine=$(nproc)
_wantedJobs=$(echo "1.25*${_numberOfProcessorsOnMachine}" | bc -l)
_jobsIget=$(echo ${_wantedJobs} | awk '{print int($1+0.5)}')
_TOTAL_DISK=$(df -h --total | awk 'END{print $2}')
_FREEMEM=$(free --mega)
_TOTAL_MEM=$(free --total --mega | xargs | awk '{print $19"MB"}')
_TOTAL_RAM=$(free --total --mega | xargs | awk '{print $8"MB"}')
_TOTAL_SWAP=$(free --total --mega | xargs | awk '{print $15"MB"}')
_name=linphone
#pkgname=(linphone-desktop linphone)
pkgname=linphone-desktop
_pkgname=linphone-desktop
#_metapkgname=linphone-desktop
pkgver=5.2.0
pkgrel=1
arch=(x86_64 i686)
url='http://linphone.org'
license=(GPL)
# depends=() See the depends section in the separate packages on
# line 136 and line 175.
#makedepends=(cmake libdecaf glew zxing-cpp libyuv
# qt5-svg qt5-quickcontrols qt5-quickcontrols2 qt5-graphicaleffects
# qt5-tools qt5-declarative qt5-speech qt5-wayland qt5-webview
# liblinphone)
makedepends=(cmake python-pystache doxygen nasm yasm python-six
'mediastreamer2>=5.3.1' 'liblinphone>=5.3.1' 'broadvoice16>=1.2'
'bcmatroska2>=5.3.5' 'bcg729>=1.1.1' "bctoolbox>=5.3.5"
"liboqs>=0.7.1" "postquantumcryptoengine>=5.3.0"
qt5-base qt5-quickcontrols qt5-quickcontrols2 qt5-graphicaleffects
qt5-svg qt5-tools qt5-declarative qt5-speech qt5-wayland qt5-webview
'qt5-xcb-private-headers' qtkeychain-qt5
boost mesa procps-ng bc patch libdecaf libebml xerces-c 'glew' 'gsm' 'gzip'
'zxing-cpp' 'libyuv' 'inkscape' 'imagemagick' 'openblas' 'blas-openblas')
source=("${_pkgname}-${pkgver}.tar.bz2"
linphoneqt-01-fix-no-git.patch
linphoneqt-02-remove-bc_compute_full_version-usage.patch
linphoneqt-03-icons.patch)
sha512sums=(SKIP SKIP SKIP SKIP)
sha256sums=(SKIP SKIP SKIP SKIP)
_uploaddir=/usr/src/packages/SOURCES
_sourcedir=/usr/src/packages/BUILD/${pkgname}/src/${pkgname}-${pkgver}
# srcdir is already defined as first package name in list ${pkgname}
# ${srcdir}=/usr/src/packages/BUILD/${pkgname}/src
_builddir=/usr/src/packages/BUILD/${pkgname}/build
_pkgdir=/usr/src/packages/BUILD/${pkgname}/pkg/${pkgname}
_installToDir=${_pkgdir}/usr
prepare() {
echo "Move patching to build() section for verbose log output"
# patch -d "${_sourcedir}" -p1 < fix.patch
# patch -d "${_sourcedir}" --forward --strip=1 --input="${srcdir}/fix.patch"
# patch -d "${_sourcedir}" --forward --strip=1 --input="${_uploaddir}/fix.patch"
patch -d ${pkgname}-$pkgver -p1 < linphoneqt-01-fix-no-git.patch
patch -d ${pkgname}-$pkgver -p1 < linphoneqt-02-remove-bc_compute_full_version-usage.patch
#patch -d ${pkgname}-$pkgver -p1 < linphoneqt-03-icons.patch
#patch -d "${_sourcedir}" -p1 < linphoneqt-fix-no-git.patch
#patch -d "${_sourcedir}" -p1 < linphoneqt-0002-remove-bc_compute_full_version-usage.patch
#patch -d "${_sourcedir}" -p1 < linphoneqt_fix_gcc12_error.patch
#patch -d "${_sourcedir}" -p1 < linphoneqt-fix-Archlinux-compilation.patch
}
build() {
echo
echo "--- Enterings section build() ---"
echo
uploaddir=/usr/src/packages/SOURCES
builddir=/usr/src/packages/BUILD/${_pkgname}/build
_builddir=/usr/src/packages/BUILD/${_pkgname}/src/${_pkgname}-${pkgver}/OUTPUT
sourcedir=/usr/src/packages/BUILD/${_pkgname}/src/${_pkgname}-${pkgver}
echo uploaddir=$uploaddir
echo sourcedir=$sourcedir
echo \${srcdir}=${srcdir}
echo builddir=$builddir
echo \${_builddir}=${_builddir}
echo pwd=$(pwd)
echo _uploaddir=$_uploaddir
echo _sourcedir=$_sourcedir
echo srcdir=${srcdir}
echo _builddir=$_builddir
echo _pkgdir=$_pkgdir
echo _installToDir=$_installToDir
cd "${_sourcedir}"
echo
echo "--- Machine data we are building on ---"
echo "Total disk: $_TOTAL_DISK"
echo "Output of free -h:"
echo "$_FREEMEM"
echo "Total memory: $_TOTAL_MEM"
echo "Total RAM: $_TOTAL_RAM"
echo "Total SWAP: $_TOTAL_SWAP"
echo "_numberOfProcessorsOnMachine=$_numberOfProcessorsOnMachine"
echo "_wantedJobs=$_wantedJobs"
echo "_jobsIget=$_jobsIget"
echo "--- End machine data we are building on ---"
#echo "--- List files ---"
#echo "Avoid /usr/src/packages/BUILD/$pkgname/pkg"
#echo "which will break compilation with \"permission denied\"."
#find /usr/src/packages/SOURCES 2>/dev/null
#find /usr/src/packages/BUILD/$pkgname/src 2>/dev/null
#find /usr/lib 2>/dev/null
#echo "--- End list files ---"
echo
# Fix the include path to <json/json.h> to <jsoncpp/json/json.h> :
#MODIFY_FILE=/usr/src/packages/BUILD/include/linphone/FlexiAPIClient.hh; \
#sed -i 's/#include <json\/json\.h>/#include <jsoncpp\/json\/json.h>/g' $MODIFY_FILE
#MODIFY_FILE=/usr/src/packages/BUILD/src/FlexiAPIClient.cc; \
#sed -i 's/#include <json\/json\.h>/#include <jsoncpp\/json\/json.h>/g' $MODIFY_FILE
#MODIFY_FILE=/usr/src/packages/BUILD/tester/remote-provisioning-tester.cpp; \
#sed -i 's/#include <json\/json\.h>/#include <jsoncpp\/json\/json.h>/g' $MODIFY_FILE
#MODIFY_FILE=/usr/src/packages/BUILD/tester/flexiapiclient-tester.cpp; \
#sed -i 's/#include <json\/json\.h>/#include <jsoncpp\/json\/json.h>/g' $MODIFY_FILE
echo
cd ${sourcedir}
# Fix building out-of-git
echo '#define LINPHONE_QT_GIT_VERSION "${PROJECT_VERSION}"' >> linphone-app/src/config.h.cmake
# Hardcode linphoneqt version
echo "project(linphoneqt VERSION $pkgver)" > linphone-app/linphoneqt_version.cmake
echo pwd=$(pwd)
cp -v ${uploaddir}/${_name}.appdata.xml linphone.appdata.xml
touch linphone-sdk/CMakeLists.txt
#if [[ ${pkgver} = 5.1.[0-9]* ]]; then
# echo linphone-app/CMakeLists.txt
# echo "--------------------------------------------------------------"
# cat linphone-app/CMakeLists.txt
# echo "--------------------------------------------------------------"
# sed -i '/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/include/@%{buildroot}%{_includedir}/@;/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/@%{buildroot}%{_libdir}/@' linphone-app/CMakeLists.txt
# sed -i '/\/ui/s@${qml_dir}@${CMAKE_CURRENT_SOURCE_DIR}/../&@' linphone-app/cmake_builder/linphone_package/CMakeLists.txt
# mkdir -p -v build/linphone-sdk/desktop/share/{,sounds}/linphone
#fi
# Adaptation from SPEC file (maybe obsolete):
sed -i '/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/include/@/usr/src/packages/BUILD/linphone/pkg/linphone/usr/include/@;/^add_custom_command/s@${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/@/usr/src/packages/BUILD/linphone/pkg/linphone/usr/lib/@' linphone-app/CMakeLists.txt
sed -i '/\/ui/s@${qml_dir}@${CMAKE_CURRENT_SOURCE_DIR}/../&@' linphone-app/cmake_builder/linphone_package/CMakeLists.txt
# makepkg will stop after one diff command, but it is useful to see if sed suceeded.
# echo "---------- diff linphone-app/CMakeLists.txt ----------"
# diff -U 3 -dHBbrN -- linphone-app/CMakeLists.orig.txt linphone-app/CMakeLists.txt
# diff -U 3 linphone-app/CMakeLists.orig.txt linphone-app/CMakeLists.txt
# echo "---------- diff linphone-app/cmake_builder/linphone_package/CMakeLists.txt ----------"
# diff -U 3 linphone-app/cmake_builder/linphone_package/CMakeLists.orig.txt linphone-app/cmake_builder/linphone_package/CMakeLists.txt
# echo "---------- end diff ----------"
# Previous CMAKE options that have been used:
# -DLINPHONE_OUTPUT_DIR="$PWD" \
# -DENABLE_QT_KEYCHAIN=OFF \
# -DCMAKE_LDFLAGS=" $LDFLAGS -ljsoncpp -lZXing -lyuv" \
# -DCMAKE_EXE_LINKER_FLAGS="-ljsoncpp -lZXing -lyuv" \
# -DCMAKE_BUILD_TYPE=Release \
# -DENABLE_UPDATE_CHECK=OFF \
# -DENABLE_STRICT=OFF \
# -DENABLE_STATIC=OFF
# -DCMAKE_MODULE_PATH="$$CMAKE_PREFIX_PATH;/usr/share/LinphoneCxx/cmake/;/usr/lib" \
# -DCMAKE_PREFIX_PATH="$$CMAKE_PREFIX_PATH;/usr/include/jsoncpp;/usr/share/LinphoneCxx/cmake/" \
#which convert
#which inkscape
#find . -type f -name genicons_1.1.sh -exec {} \;
#cmake -S ${sourcedir} -B ${builddir} \
# -DCMAKE_BUILD_PARALLEL_LEVEL=${_jobsIget} \
# -DCMAKE_INSTALL_PREFIX=/usr \
# -DLINPHONE_OUTPUT_DIR="$PWD" \
# -DCMAKE_VERBOSE_MAKEFILE=ON \
# -DENABLE_QT_KEYCHAIN=OFF \
# -DCMAKE_LDFLAGS=" $LDFLAGS -ljsoncpp -lZXing -lyuv" \
# -DCMAKE_EXE_LINKER_FLAGS="-ljsoncpp -lZXing -lyuv" \
# -DCMAKE_BUILD_TYPE=Release \
# -DENABLE_UPDATE_CHECK=OFF \
# -DENABLE_STRICT=OFF \
# -DENABLE_STATIC=OFF
cmake -S "${_sourcedir}" -B "${_builddir}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_UPDATE_CHECK=OFF \
-DENABLE_STATIC=OFF \
-DENABLE_QT_KEYCHAIN=NO
cmake --build ${builddir} --parallel ${_jobsIget}
echo "--- Show what was built ---"
find ${builddir} 2>/dev/null
echo "--- End show what was built ---"
echo pwd=$(pwd)
echo
echo "Cleaning cmake_install.cmake files from linphone-sdk items..."
sed -i 's/lib:\/usr\/src\/packages\/BUILD\/linphone-desktop\/build\/linphone-sdk\/desktop\///g' ${builddir}/linphone-app/cmake_builder/linphone_package/cmake_install.cmake
sed -i '/linphone-sdk/d' ${builddir}/linphone-app/cmake_builder/linphone_package/cmake_install.cmake
sed -i "s|$srcdir/build/OUTPUT|$pkgdir/usr|" ${builddir}/cmake_install.cmake
echo "--- Show installed files from build section ---"
echo "Check that these files are not missing in package $_pkgname."
echo "If necessary, move these files to"
echo " ${_pkgdir}"
echo
find /usr/src/packages/BUILD/linphone
echo "--- End show installed files from build section ---"
echo "[OK] Cleaned cmake_install.cmake files"
echo
echo "--- Exiting section build() ---"
echo
}
#package_linphone() {
# pkgdesc='A free VoIP and video softphone based on the SIP protocol'
# # TODO: Some dependencies can probably be moved to liblinphone and mediastreamer
# depends=('liblinphone>=5.2.97' 'mediastreamer2>=5.2.95' 'bcg729' 'bcmatroska2'
# 'qt5-quickcontrols' 'qt5-quickcontrols2' 'qt5-graphicaleffects' 'qt5-svg' 'qt5-tools' 'qt5-speech'
# 'broadvoice16' 'gsm'
# 'glew' 'hicolor-icon-theme' 'jsoncpp' 'xerces-c' 'zxing-cpp' 'libdecaf')
# echo
# echo "--- Entering section package_linphone() ---"
# echo
# uploaddir=/usr/src/packages/SOURCES
# builddir=/usr/src/packages/BUILD/${_pkgname}/build
# _builddir=/usr/src/packages/BUILD/${_pkgname}/src/${_pkgname}-${pkgver}/OUTPUT
# sourcedir=/usr/src/packages/BUILD/${_pkgname}/src/${_pkgname}-${pkgver}
# echo uploaddir=$uploaddir
# echo sourcedir=$sourcedir
# echo \${srcdir}=${srcdir}
# echo builddir=$builddir
# echo \${_builddir}=${_builddir}
# echo pkgdir=${pkgdir}
# echo pwd=$(pwd)
# echo
# DESTDIR="${pkgdir}" cmake --install ${builddir} --strip
# # Move files to the correct location
# mkdir -p ${pkgdir}/usr
# mv ${pkgdir}/usr/src/packages/BUILD/linphone-desktop/build/OUTPUT/* ${pkgdir}/usr
# # Clean-up
# rm -rf ${pkgdir}/usr/src
# rm -v -f ${pkgdir}/usr/bin/qt.conf
# echo
# echo "--- Show what was built ---"
# find ${pkgdir} 2>/dev/null
# echo "--- End show what was built ---"
# echo
# echo "--- Exiting section package_linphone() ---"
# echo
#}
#package_linphone-desktop() {
# echo
# echo "--- Entering section package_linphone-desktop() ---"
# echo
# pkgdesc='A free VoIP and video softphone (meta package)'
# depends=("linphone>=${pkgver}")
# echo
# echo "--- Exiting section package_linphone-desktop() ---"
# echo
#}
package_linphone-desktop() {
echo _uploaddir=$_uploaddir
echo _sourcedir=$_sourcedir
echo srcdir=${srcdir}
echo _builddir=$_builddir
echo _pkgdir=$_pkgdir
echo _installToDir=$_installToDir
echo pkgdir=$pkgdir
pkgdesc='A free VoIP and video softphone based on the SIP protocol'
conflicts=("$_name")
provides=("$_name=$pkgver")
# TODO: Some dependencies can probably be moved to liblinphone, mediastreamer2 etc.
# optional depends: 'mediastreamer2' 'bcmatroska2' 'bcg729' 'broadvoice16' 'gsm'
# 'glew' 'jsoncpp' 'xerces-c' 'libdecaf' 'zxing-cpp'
depends=(liblinphone qt5-quickcontrols qt5-quickcontrols2 qt5-graphicaleffects
qt5-svg qt5-tools qt5-speech hicolor-icon-theme)
rm -rf "${pkgdir}"; mkdir -pv "${pkgdir}"
cmake --install "${_builddir}" --config RelWithDebInfo --prefix "${_installToDir}"
# cmake --install "${_builddir}" --config RelWithDebInfo --prefix "${_installToDir}" --strip
# DESTDIR="${_installToDir}" cmake --install "${builddir}"
# DESTDIR="${_installToDir}" cmake --install "${builddir}" --strip
# echo "--- Show installed files ---"
# find ${pkgdir} 2>/dev/null
# echo "--- End show installed files ---"
# Move files to the correct location if neccessary
# mkdir -pv ${pkgdir}/usr
# mv ${pkgdir}/usr/src/packages/BUILD/linphone/build/OUTPUT/* ${pkgdir}/usr
# Clean-up
rm -vrf ${pkgdir}/usr/src
rm -vf ${pkgdir}/usr/bin/qt.conf
# echo "--- Show packaged files in $_pkgname package ---"
# find ${pkgdir} 2>/dev/null
# echo "--- End show packaged files in $_pkgname package ---"
}
# openSUSE has renamed package linphone to linphone-desktop
# The meta package linphone-desktop is therefore no longer needed.
#
#package_linphone-desktop() {
# pkgdesc='A free VoIP and video softphone (meta package)'
# conflicts=("${_metapkgname}")
# provides=("${_metapkgname}=${pkgver}")
# depends=("${_pkgname}>=${pkgver}")
#}