09124ab06c
yq package is now provided in the BigBlueButton support PPA for BBB 2.5, so we can depend on the package now. Ensure the dependency is specific to avoid an incompatible yq version 4 from being installed.
68 lines
2.2 KiB
Bash
Executable File
68 lines
2.2 KiB
Bash
Executable File
#!/bin/bash -ex
|
|
|
|
TARGET=`basename $(pwd)`
|
|
|
|
|
|
PACKAGE=$(echo $TARGET | cut -d'_' -f1)
|
|
VERSION=$(echo $TARGET | cut -d'_' -f2)
|
|
DISTRO=$(echo $TARGET | cut -d'_' -f3)
|
|
|
|
#
|
|
# Clean up directories
|
|
rm -rf staging
|
|
|
|
#
|
|
# Create directory for fpm to process
|
|
DIRS="/usr/share/bigbluebutton/nginx /usr/local/bigbluebutton/bbb-webrtc-sfu /etc/logrotate.d /usr/lib/systemd/system /etc/cron.hourly"
|
|
for dir in $DIRS; do
|
|
mkdir -p staging$dir
|
|
done
|
|
|
|
##
|
|
|
|
mkdir -p staging/usr/local/bigbluebutton/bbb-webrtc-sfu
|
|
|
|
find -maxdepth 1 ! -path . ! -name staging $(printf "! -name %s " $(cat .build-files)) -exec cp -r {} staging/usr/local/bigbluebutton/bbb-webrtc-sfu/ \;
|
|
|
|
pushd .
|
|
cd staging/usr/local/bigbluebutton/bbb-webrtc-sfu/
|
|
|
|
# this is required because it is referenced as a submodule here
|
|
rm -rf .git
|
|
# npm install expects this to be a git repository
|
|
git init
|
|
|
|
if [ "$DISTRO" == "focal" ]; then
|
|
# this is a workaround so that the post-install command will find the pegjs binary
|
|
export PATH=$PWD/node_modules/pegjs/bin:$PATH
|
|
npm install --unsafe-perm --production
|
|
else
|
|
npm install --unsafe-perm --production
|
|
fi
|
|
|
|
# clean out stuff that is not required in the final package. Most of this are object files from dependant libraries
|
|
rm -rf node_modules/mediasoup/worker/out/Release/subprojects
|
|
rm -rf node_modules/mediasoup/worker/out/Release/mediasoup-worker.p
|
|
rm -rf node_modules/mediasoup/worker/out/Release/deps
|
|
popd
|
|
|
|
cp webrtc-sfu.nginx staging/usr/share/bigbluebutton/nginx
|
|
|
|
cp bbb-webrtc-sfu.service staging/usr/lib/systemd/system
|
|
cp bbb-webrtc-sfu.logrotate staging/etc/logrotate.d
|
|
cp bbb-restart-kms staging/etc/cron.hourly
|
|
cp kurento-media-server.service staging/usr/lib/systemd/system
|
|
rm -rf staging/usr/local/bigbluebutton/bbb-webrtc-sfu/.git
|
|
|
|
. ./opts-$DISTRO.sh
|
|
|
|
fpm -s dir -C ./staging -n $PACKAGE \
|
|
--version $VERSION --epoch $EPOCH \
|
|
--after-install after-install.sh \
|
|
--before-install before-install.sh \
|
|
--before-remove before-remove.sh \
|
|
--description "BigBlueButton WebRTC SFU" \
|
|
$DIRECTORIES \
|
|
$OPTS \
|
|
-d 'yq (>= 3)' -d 'yq (<< 4)'
|