libraries/mlt-bindings: Added (bindings for MLT).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
klaatu 2022-03-10 15:24:44 +13:00 committed by Willy Sudiarto Raharjo
parent 52c6ea993b
commit 13afcbf176
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
4 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,28 @@
Build Swig bindings for the MLT framework.
MLT is included with Slackware, but without bindings.
It is safe to install this package in addition to what Slackware
already provides.
This package does NOT conflict with the default MLT package, and
instead installs bindings as additions to what's already included.
If you upgrade the Slackware MLT package in the future, though,
you'll probably need to upgrade these bindings.
Alternately, you can rebuild the Slackware MLT package with bindings
enabled, in which case you would remove this package.
Despite CMake options suggesting that there are more, the bindings
currently available are:
* PERL
* PHP
* PYTHON
* RUBY
By default, all are built.
Disable a binding by setting an environment variable before building.
Either "no" or "off" are valid values.
For example, to exclude Python and Ruby bindings:
# PYTHON=no RUBY=off sh ./mlt-bindings.SlackBuild

View File

@ -0,0 +1,118 @@
#!/bin/bash
# Slackware build script for MLT bindings
# Copyright 2022 Klaatu <klaatu@member.fsf.org> | Lawrence NZ
# GNU All-Permissive License
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mlt-bindings
SRCNAM=mlt
VERSION=${VERSION:-7.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
PERL=${PERL:-on}
PYTHON=${PYTHON:-on}
PHP=${PHP:-on}
RUBY=${RUBY:-on}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If PRINT_PACKAGE_NAME is set, print name of this package
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir $PRGNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz --strip-components=1 \
-C $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir -p cmake-build
mkdir -p $PKG/out
cd cmake-build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSWIG_PERL=$PERL \
-DSWIG_PHP=$PHP \
-DSWIG_PYTHON=$PYTHON \
-DSWIG_RUBY=$RUBY \
-DCMAKE_BUILD_TYPE=Release ..
make -j11
make install DESTDIR=$PKG/out
cd ..
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
cp -ar $PKG/out/usr/lib${LIBDIRSUFFIX}/perl5 \
$PKG/usr/lib${LIBDIRSUFFIX} 2>/dev/null || true
cp -ar $PKG/out/usr/lib${LIBDIRSUFFIX}/php \
$PKG/usr/lib${LIBDIRSUFFIX} 2>/dev/null || true
cp -ar $PKG/out/usr/lib${LIBDIRSUFFIX}/python* \
$PKG/usr/lib${LIBDIRSUFFIX} 2>/dev/null || true
cp -ar $PKG/out/usr/lib${LIBDIRSUFFIX}/ruby \
$PKG/usr/lib${LIBDIRSUFFIX} 2>/dev/null || true
rm -r $PKG/out
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
echo "See /usr/doc/$SRCNAM-$VERSION for docs" > \
$PKG/usr/doc/$PRGNAM-$VERSION/README
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View File

@ -0,0 +1,10 @@
PRGNAM="mlt-bindings"
VERSION="7.4.0"
HOMEPAGE="https://www.mltframework.org/"
DOWNLOAD="https://github.com/mltframework/mlt/releases/download/v7.4.0/mlt-7.4.0.tar.gz"
MD5SUM="4bc74ec681e67310340bafc235178a81"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README%"
MAINTAINER="Klaatu"
EMAIL="klaatu@member.fsf.org"

View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
mlt-bindings: mlt-bindings (programming interface for MLT framework)
mlt-bindings:
mlt-bindings: Libraries for hooking into the MLT multimedia framework from
mlt-bindings: Python, Perl, PHP, and Ruby.
mlt-bindings:
mlt-bindings: https://www.mltframework.org/
mlt-bindings:
mlt-bindings:
mlt-bindings:
mlt-bindings:
mlt-bindings: