bigbluebutton-Github/build/packages-template/bbb-record-core/build.sh
Daniel Schreiber c5b657a409 Fix: File permissions in packages should not depend on umask of build system
If the build system for packages has a umask of `0077`, cloned
repositories will have no permissions for group and other. As the build
scripts for some packages just copy from clone git repos, this will
preserve the permissions in the package and prevent the following
services from startup:

* `bbb-html5`
* `etherpad`
* `bbb-pads`
* `bbb-export-annotations`
* `bbb-rap-*`

This patch grants everyone read permissions to the code in the packages.
2024-06-14 16:17:49 -04:00

66 lines
1.9 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/local/bigbluebutton/core \
/etc/logrotate.d \
/var/bigbluebutton/recording/status/ended \
/var/bigbluebutton/captions/inbox \
/var/bigbluebutton/recording/status"
for dir in $DIRS; do
mkdir -p staging$dir
done
##
mkdir -p staging/var/log/bigbluebutton
cp -r scripts lib Gemfile Gemfile.lock staging/usr/local/bigbluebutton/core
pushd staging/usr/local/bigbluebutton/core
bundle config set --local deployment true
bundle install
# Remove unneeded files to reduce package size
bundle clean
rm -r vendor/bundle/ruby/*/cache
find vendor/bundle -name '*.o' -delete
chmod -R a+rX .
find vendor/bundle/ruby/*/gems/resque-*/lib/resque/server/public -type f -name "*.png" -execdir chmod 0644 {} \;
find vendor/bundle/ruby/*/gems/resque-*/bin -type f -execdir chmod 0755 {} \;
popd
cp Rakefile staging/usr/local/bigbluebutton/core
cp bbb-record-core.logrotate staging/etc/logrotate.d
SYSTEMDSYSTEMUNITDIR=$(pkg-config --variable systemdsystemunitdir systemd)
mkdir -p "staging${SYSTEMDSYSTEMUNITDIR}"
cp systemd/* "staging${SYSTEMDSYSTEMUNITDIR}"
if [ -f "staging/usr/local/bigbluebutton/core/scripts/basic_stats.nginx" ]; then \
mkdir -p staging/usr/share/bigbluebutton/nginx; \
mv staging/usr/local/bigbluebutton/core/scripts/basic_stats.nginx staging/usr/share/bigbluebutton/nginx; \
fi
##
. ./opts-$DISTRO.sh
fpm -s dir -C ./staging -n $PACKAGE \
--version $VERSION --epoch $EPOCH \
--before-install before-install.sh \
--after-install after-install.sh \
--before-remove before-remove.sh \
--description "BigBlueButton record and playback" \
$DIRECTORIES \
$OPTS