File debian.rules of Package mediastreamer2
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
# Set debhelper options
DEB_BUILD_OPTIONS=nocheck
export pkgname=mediastreamer2
export _topdir=/usr/src/packages
export _builddir=$(_topdir)/BUILD
export _sourcedir=$(_topdir)/SOURCES
export uploaddir=/usr/src/packages/SOURCES
export srcdir=/usr/src/packages/SOURCES
export pkgdir_head=/usr/src/packages/BUILD/debian
#export pkgdir=$(pkgdir_head)/$(pkgname)
export pkgdir=$(pkgdir_head)/tmp
export buildroot=/usr/src/packages/BUILD/debian/tmp
#export buildroot=/usr/src/packages/BUILD/debian/$(pkgname)
# Add support for different Debian based distributions
export VERSION_CODENAME = $(shell cat /etc/os-release | grep VERSION_CODENAME | awk -F= '{print $$2}')
export VERSION_ID = $(shell cat /etc/os-release | grep VERSION_ID | awk -F= '{print $$2}')
export PRETTY_NAME=$(shell cat /etc/*-release | egrep "PRETTY_NAME" | cut -d = -f 2)
export ARCHITECTURE=$(shell dpkg --print-architecture)
export MY_DEB_BUILD_ARCH=$(shell dpkg-architecture -q DEB_BUILD_ARCH)
ifeq ($(findstring arm64,$(ARCHITECTURE)),arm64)
export ARCHTYPE=aarch64
export BUILDDIR=obj-$(ARCHTYPE)-linux-gnu
export LIBDIR=$(ARCHTYPE)-linux-gnu
endif
ifeq ($(findstring amd64,$(ARCHITECTURE)),amd64)
export ARCHTYPE=x86_64
export BUILDDIR=obj-$(ARCHTYPE)-linux-gnu
export LIBDIR=$(ARCHTYPE)-linux-gnu
endif
ifeq ($(findstring armhf,$(ARCHITECTURE)),armhf)
export ARCHTYPE=arm
export BUILDDIR=obj-$(ARCHTYPE)-linux-gnueabihf
export LIBDIR=$(ARCHTYPE)-linux-gnueabihf
endif
ifeq ($(findstring Raspbian,$(PRETTY_NAME)),Raspbian)
# Found
export PLATFORM=Raspbian
endif
ifeq ($(findstring Debian,$(PRETTY_NAME)),Debian)
# Not found
export PLATFORM=DebianOrUbuntu
endif
ifeq ($(findstring Ubuntu,$(PRETTY_NAME)),Ubuntu)
# Not found
export PLATFORM=DebianOrUbuntu
endif
export SOURCES_ARE_HERE=/usr/src/packages/BUILD/
export BUILD_IT_HERE=/usr/src/packages/BUILD/$(BUILDDIR)/
export MS2PLUGIN_DIR=$(pkgdir)/usr/lib/mediastreamer/plugins
export movelibmsqogltolib=false
export nowebcamjpg=true
export movenowebcamjpg=false
%:
dh $@ --buildsystem=cmake
override_dh_update_autotools_config:
override_dh_autoreconf:
override_dh_auto_configure:
echo "Different Debian based distros need different patches and adjustments."
echo PRETTY_NAME=$(PRETTY_NAME)
echo ARCHITECTURE=$(ARCHITECTURE)
echo DEB_BUILD_ARCH=$(DEB_BUILD_ARCH)
echo MY_DEB_BUILD_ARCH=$(MY_DEB_BUILD_ARCH)
echo PLATFORM=$(PLATFORM)
echo BUILDDIR=$(BUILDDIR)
echo LIBDIR=$(LIBDIR)
echo
echo pwd=$(shell pwd)
echo
echo "Installs $(pkgname)"
echo _topdir=$(_topdir)
echo _builddir=$(_builddir)
echo _sourcedir=$(_sourcedir)
echo uploaddir=$(uploaddir)
echo srcdir=$(srcdir)
echo pkgdir_head=$(pkgdir_head)
echo pkgdir=$(pkgdir)
echo buildroot=$(buildroot)
echo "----------------------------------------"
if [ "$(VERSION_CODENAME)" = "bookworm" ] || [ "$(VERSION_CODENAME)" = "trixie" ] || [ "$(VERSION_ID)" = "23.10" ] || [ "$(VERSION_ID)" = "24.04" ]; then echo "Debian Unstable, Debian 12, Ubuntu 23.10" ; echo "need ffmpeg5 patch" ; patch -d /usr/src/packages/BUILD/ -p1 < /usr/src/packages/SOURCES/fix-build-ffmpeg5.patch ; else echo "Raspbian 11, Ubuntu 22.04" ; echo "no ffmpeg5 patch needed" ; fi
#mkdir -pv $(BUILDDIR)
mkdir -pv $(BUILD_IT_HERE)
sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.dirs
sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.install
sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.links
sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-dev.dirs
#cmake -S /usr/src/packages/BUILD/ -B /usr/src/packages/BUILD/$(BUILDDIR) \
cmake -S $(SOURCES_ARE_HERE) -B $(BUILD_IT_HERE) \
-DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration -Wno-error=unused-parameter -Wno-error=int-conversion" \
-DCMAKE_CXX_FLAGS="-Wno-error=implicit-function-declaration -Wno-error=unused-parameter -Wno-error=int-conversion" \
-DCMAKE_MODULE_PATH="$$CMAKE_MODULE_PATH;/usr/src/packages/SOURCES" \
-DCMAKE_INSTALL_LIBDIR=lib/$(LIBDIR) \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_PREFIX_PATH="$$CMAKE_PREFIX_PATH;/usr/lib/cmake/ortp/;/usr/lib/" \
-Dortp_DIR="/usr/lib/cmake/ortp/" \
-DENABLE_STRICT=OFF \
-DBUILD_SHARED_LIBS=YES \
-DENABLE_STATIC=OFF \
-DENABLE_QT_GL=YES \
-DENABLE_UNIT_TESTS=OFF \
-DENABLE_TOOLS=OFF \
-DENABLE_QRCODE=OFF
execute_before_dh_auto_install:
echo "--- Start execute_before_dh_auto_install ---"
echo "--- End execute_before_dh_auto_install ---"
execute_after_dh_auto_install:
echo "--- Start execute_after_dh_auto_install ---"
# /usr/bin/linphone looks for libmsqogl.so in relative path
# ../plugins/mediastreamer/libmsqogl.so
# Patching source code needed to force linphone search for
# libmsqogl.so in /usr/lib/$(LIBDIR) where libraries are.
if $(movelibmsqogltolib); then \
echo mv -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so $(buildroot)/usr/lib/$(LIBDIR)/libmsqogl.so ; \
else \
echo "##########################################################" ; \
echo "### libmsqogl.so is installed in wrong place ###" ; \
echo "##########################################################" ; \
echo "# /usr/bin/linphone looks for libmsqogl.so in #" ; \
echo "# relative path #" ; \
echo "# ../plugins/mediastreamer/libmsqogl.so #" ; \
echo "# or (check folder in AppImage) #" ; \
echo "# ../lib/mediastreamer/plugins/libmsqogl.so #" ; \
echo "# but libmsqogl.so is installed in #" ; \
echo "# /usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so #" ; \
echo "# libmsqogl.so needs to move to #" ; \
echo "# /usr/plugins/mediastreamer/libmsqogl.so #" ; \
echo "# check with linphone -> settings -> video -> preview #" ; \
echo "##########################################################" ; \
echo "$(MS2PLUGIN_DIR)" ; \
mkdir -pv $(MS2PLUGIN_DIR) ; \
echo create link instead of: mv -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so $(MS2PLUGIN_DIR)/libmsqogl.so ; \
fi
echo rmdir -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins
echo rmdir -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer
# Exchange static camera picture (move nowebcamCIF.jpg to liblinphone-data package)
# debian.tar.xz has to be changed as well.
if $(nowebcamjpg); then \
if $(movenowebcamjpg); then \
rm -vf $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
mkdir -pv $(buildroot)/usr/share/linphone/images ; \
cp -v /usr/src/packages/SOURCES/nowebcamCIF.jpg $(buildroot)/usr/share/linphone/images/nowebcamCIF.jpg ; \
else \
cp -v /usr/src/packages/SOURCES/nowebcamCIF.jpg $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
fi ; \
else \
rm -vf $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
rm -vf $(buildroot)/usr/share/linphone/images/nowebcamCIF.jpg ; \
if [ -d "${pkgdir}"/usr/share/images ]; then \
rmdir -v $(buildroot)/usr/share/images ; \
fi ; \
if [ -d "${pkgdir}"/usr/share/linphone/images ]; then \
rmdir -v $(buildroot)/usr/share/linphone/images ; \
fi ; \
fi
# Remove OpenGL files
rm -rfv $(buildroot)/usr/include/OpenGL
echo "--- Files that will be packaged ---"
find $(buildroot)
echo "--- End files that will be packaged ---"
echo "--- End execute_after_dh_auto_install ---"
override_dh_auto_test:
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info