File PKGBUILD of Package mediastreamer2

# 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}
pkgname=mediastreamer2
pkgver=5.3.37
pkgrel=0
pkgdesc='A library written in C that allows you to create and run audio and video streams'
arch=(x86_64)
url='https://gitlab.linphone.org/'
license=(GPL)
# With debug symbols
options=(!strip)
conflicts=($pkgname)
provides=("$pkgname=$pkgver")
# optional depends: zxing-cpp 'mbedtls2=2.28.0'
depends=(bzrtp ortp bcmatroska2 bcg729 broadvoice16 ffmpeg glew libsrtp libdecaf)
makedepends=(cmake python doxygen bcg729 broadvoice16 bcmatroska2
  bctoolbox bcunit bzrtp ortp liboqs postquantumcryptoengine
  libogg opus gsm speex speexdsp libtheora pipewire-v4l2 pipewire-media-session
  libvpx libxv ffmpeg libjpeg-turbo glew mesa libyuv sqlite3 libebml 
  sdl12-compat libx11 libxext mbedtls2 libxml2 libupnp libpcap graphviz
  libsrtp git libdecaf qt5-base qt5-declarative chrpath)
source=(https://gitlab.linphone.org/BC/public/${pkgname}/-/archive/$pkgver/${pkgname}-$pkgver.tar.bz2
        ${pkgname}-fix-pkgconfig.patch
        fix-build-ffmpeg5.patch        
        set_current_version.patch        
        ${pkgname}-0002-nowebcamjpg.patch
        ${pkgname}-0001-plugin-dir.patch
        ${pkgname}-fix-Archlinux-compilation.patch)
sha1sums=(SKIP SKIP SKIP SKIP SKIP SKIP SKIP)
_sobase=libmediastreamer
_sover=11
_package_nowebcamjpg=false
_package_opengl=false
_move_libmsqogl_to_lib=true
_uploaddir=/usr/src/packages/SOURCES
_sourcedir=/usr/src/packages/BUILD/${pkgname}/src/${pkgname}-${pkgver}
# srcdir is already defined as
# ${srcdir}=/usr/src/packages/BUILD/${pkgname}/src
_builddir=/usr/src/packages/BUILD/${pkgname}/build
_pkgdir=/usr/src/packages/BUILD/${pkgname}/pkg/${pkgname}
_installToDir=${_pkgdir}

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 "${_sourcedir}" -p1 < ${pkgname}-fix-pkgconfig.patch
  patch -d "${_sourcedir}" -p1 < fix-build-ffmpeg5.patch
  patch -d "${_sourcedir}" -p1 < set_current_version.patch
  patch -d "${_sourcedir}" -p1 < ${pkgname}-0002-nowebcamjpg.patch
  if ${_move_libmsqogl_to_lib}; then
    patch -d "${_sourcedir}" -p1 < ${pkgname}-0001-plugin-dir.patch
  fi
  patch -d "${_sourcedir}" -p1 < ${pkgname}-fix-Archlinux-compilation.patch
}

build() {
  cmake -S "${_sourcedir}" -B "${_builddir}" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_MODULE_PATH="${CMAKE_MODULE_PATH};/usr/src/packages/SOURCES" \
    -DENABLE_UNIT_TESTS=OFF \
    -DENABLE_STATIC=OFF \
    -DENABLE_STRICT=OFF \
    -DENABLE_QT_GL=YES
  cmake --build "${_builddir}"
}

package() {
  rm -rf "${pkgdir}"; mkdir -pv "${pkgdir}"
  # cmake --install "${_builddir}" --config RelWithDebInfo --prefix "${_installToDir}" --strip
  DESTDIR="${_installToDir}" cmake --install "${_builddir}"
  # DESTDIR="${_installToDir}" cmake --install "${_builddir}" --strip
  chrpath -d "${pkgdir}"/usr/bin/mediastream 
  chrpath -d "${pkgdir}"/usr/bin/mkvstream 
  #chrpath -d "${pkgdir}"/usr/bin/mediastreamer2_tester
  chrpath -d "${pkgdir}"/usr/lib/${_sobase}.so.${_sover}* 
  chrpath -d "${pkgdir}"/usr/lib/${_sobase}.so
  if ${_move_libmsqogl_to_lib}; then
    chrpath -d "${pkgdir}"/usr/lib/libmsqogl.so
  else
    chrpath -d "${pkgdir}"/usr/lib/mediastreamer/plugins/libmsqogl.so
    # /usr/bin/linphone looks for libmsqogl.so in relative path
    # ../plugins/mediastreamer/libmsqogl.so
    mkdir -pv "${pkgdir}"/usr/plugins/mediastreamer
    mv -v "${pkgdir}"/usr/lib/mediastreamer/plugins/libmsqogl.so "${pkgdir}"/usr/plugins/mediastreamer
    rmdir -v "${pkgdir}"/usr/lib/mediastreamer/plugins
    rmdir -v "${pkgdir}"/usr/lib/mediastreamer
  fi
  if ${_package_nowebcamjpg}; then
    # Exchange static camera picture
    # cp -v ${_uploaddir}/nowebcamCIF.jpg "${pkgdir}"/usr/share/images/nowebcamCIF.jpg
    cp -v ${_uploaddir}/nowebcamCIF.jpg "${pkgdir}"/usr/share/linphone/images/nowebcamCIF.jpg
  else
    # Move nowebcamCIF.jpg to liblinphone-data package
    rm -vf "${pkgdir}"/usr/share/images/nowebcamCIF.jpg
    rm -vf "${pkgdir}"/usr/share/linphone/images/nowebcamCIF.jpg
    if [ -d "${pkgdir}"/usr/share/images ]; then
      rmdir -v "${pkgdir}"/usr/share/images
    fi
    if [ -d "${pkgdir}"/usr/share/linphone/images ]; then
      rmdir -v "${pkgdir}"/usr/share/linphone/images
    fi
  fi
  if ! ${_package_opengl}; then
    # Remove OpenGL files
    rm -vr "${pkgdir}"/usr/include/OpenGL
  fi
  echo
  echo pkgdir=${pkgdir}
  echo "--- Show files that will be packaged ---"
  find ${pkgdir} | sed "s|${pkgdir}||g" | sort
  echo "--- End show files that will be packaged ---"
}
openSUSE Build Service is sponsored by