obs-ndi & ndi-sdk

This commit is contained in:
Евгений Храмов 2024-06-11 19:31:14 +03:00
parent 5bb3e8ad81
commit 5cf10b6249
5 changed files with 207 additions and 64 deletions

@ -1,30 +0,0 @@
name='libndi-bin'
version='5.5.3'
release='2'
desc='ndi-sdk для obs-ndi'
homepage='https://github.com/Palakis/obs-ndi'
maintainer="Евгений Храмов <xpamych@yandex.ru>"
architectures=('amd64')
license=('LGPL2.0')
provides=('libndi')
conflicts=('libndi-git' 'ndi-sdk')
sources=("https://github.com/obs-ndi/obs-ndi/releases/download/4.11.1/libndi5-dev_${version}-1_amd64.deb"
"https://github.com/obs-ndi/obs-ndi/releases/download/4.11.1/libndi5_${version}-1_amd64.deb")
checksums=('SKIP'
'SKIP')
prepare() {
cd "${srcdir}"
mkdir a b
bsdtar -xf libndi5_5.5.3-1_amd64.deb -C a data.tar.zst
bsdtar -xf libndi5-dev_5.5.3-1_amd64.deb -C b data.tar.zst
tar -xf ./a/data.tar.zst -C "${pkgdir}"
tar -xf ./b/data.tar.zst -C "${pkgdir}"
ln -frs "${pkgdir}/usr/lib/libndi.so.${pkgver}" "${pkgdir}/usr/lib/libndi.so.${version%%.*}"
ln -frs "${pkgdir}/usr/lib/libndi.so.${pkgver}" "${pkgdir}/usr/lib/libndi.so"
}
package() {
cd "${pkgdir}"
}

55
ndi-sdk/alr.sh Normal file

@ -0,0 +1,55 @@
name='ndi-sdk'
version='5.6.1.r138387.20240216'
_majver="${pkgver%%.*}"
release='1'
desc='NewTek NDI SDK'
homepage='https://ndi.tv/sdk/'
maintainer="Евгений Храмов <xpamych@yandex.ru>"
architectures=('amd64')
license=('LicenseRef-custom')
provides=('libndi')
conflicts=('libndi')
deps=('avahi')
options=('!strip')
_srcfile="Install_NDI_SDK_v${pkgver}_Linux.tar.gz"
sources=("$_srcfile"::"https://downloads.ndi.tv/SDK/NDI_SDK_Linux/Install_NDI_SDK_v${_majver}_Linux.tar.gz?~archive=false")
checksums=('SKIP')
noextract=("$_srcfile")
sha256sums=('1cfcc32ee26bc2571c5cbf71e81dafc676e3887e5724a89ce508f49e3c5e0572')
prepare() {
mkdir -p "${name}-${version}"
bsdtar -x -f "$_srcfile" -C "${name}-${version}"
local _target_line
cd "${name}-${version}"
_target_line="$(sed -n '/^__NDI_ARCHIVE_BEGIN__$/=' "Install_NDI_SDK_v${_majver}_Linux.sh")"
_target_line="$((_target_line + 1))"
tail -n +"$_target_line" "Install_NDI_SDK_v${_majver}_Linux.sh" | tar -zxvf -
}
package() {
local _sdkdir="${srcdir}/${name}-${version}/NDI SDK for Linux"
# binary executables
install -D -m755 "${_sdkdir}/bin/${CARCH}-linux-gnu/"* -t "${pkgdir}/usr/bin"
# headers
cp -dr --no-preserve='ownership' "${_sdkdir}/include" "${pkgdir}/usr"
# library
install -D -m755 "${_sdkdir}/lib/${CARCH}-linux-gnu/libndi.so.${_majver}".*.* -t "${pkgdir}/usr/lib"
cd "${pkgdir}/usr/lib"
ln -s "libndi.so.${_majver}".*.* "libndi.so.${_majver}"
ln -s "libndi.so.${_majver}" libndi.so
# docs
install -D -m644 "${_sdkdir}/documentation/"*.pdf -t "${pkgdir}/usr/share/doc/${pkgname}"
# license
install -D -m644 "${_sdkdir}/NDI SDK License Agreement.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -D -m644 "${_sdkdir}/licenses/libndi_licenses.txt" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

@ -8,7 +8,7 @@ architectures=('amd64')
license=('GPL2')
provides=('obs-ndi')
conflicts=('obs-ndi-git')
deps=('obs-studio' 'avahi' 'libndi')
deps=('obs-studio' 'avahi' 'ndi-sdk')
sources=("https://github.com/obs-ndi/obs-ndi/releases/download/4.11.1/obs-ndi-${version}-linux-x86_64.deb?~archive=false")
checksums=('SKIP')
@ -16,7 +16,7 @@ checksums=('SKIP')
prepare() {
cd "${srcdir}"
bsdtar -xf d87ddf09-14be-4284-89a1-4b4385e1ebbb
tar -xf data.tar.gz
tar -xf data.tar.gz
}
package() {

@ -1,32 +0,0 @@
name='obs-ndi'
version='4.13.1'
release='1'
desc='Network A/V in OBS Studio with NewTeks NDI technology.'
homepage='https://github.com/obs-ndi/obs-ndi'
maintainer="Евгений Храмов <xpamych@yandex.ru>"
architectures=('amd64')
license=('GPL-2.0 license')
provides=('obs-ndi')
conflicts=('obs-ndi-git' 'obs-ndi-bin')
deps=('avahi' 'libndi' 'obs-studio' 'sndio')
build_deps=('cmake' 'obs-studio-libs(x86-32)')
sources=("https://github.com/Palakis/obs-ndi/archive/${version}.tar.gz")
checksums=('SKIP')
build() {
cd ${srcdir}/obs-ndi-${version}
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
}
package() {
cd ${pkgname}-${pkgver}
install -Dm755 build/obs-ndi.so ${pkgdir}/usr/lib/obs-plugins/obs-ndi.so
install -d ${pkgdir}/usr/share/obs/obs-plugins/obs-ndi/locale
cp -a data/locale/* ${pkgdir}/usr/share/obs/obs-plugins/obs-ndi/locale
install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}

150
pyside6/alr.sh Normal file

@ -0,0 +1,150 @@
pkgbase=pyside6
pkgname=(pyside6
pyside6-tools
shiboken6)
_qtver=6.7.1
_clangver=17.0.6
pkgver=${_qtver/-/}
pkgrel=1
arch=(x86_64)
url='https://www.qt.io'
license=(LGPL)
makedepends=(clang
cmake
git
llvm
ninja
python-numpy
python-setuptools
qt6-3d
qt6-charts
qt6-connectivity
qt6-datavis3d
qt6-graphs
qt6-httpserver
qt6-location
qt6-multimedia
qt6-networkauth
qt6-positioning
qt6-quick3d
qt6-remoteobjects
qt6-scxml
qt6-sensors
qt6-serialbus
qt6-serialport
qt6-shadertools
qt6-speech
qt6-svg
qt6-tools
qt6-webchannel
qt6-webengine
qt6-websockets)
source=(git+https://code.qt.io/pyside/pyside-setup#tag=v$pkgver
fix-build.patch
missing-include.patch)
sha256sums=('cd2e6bca68d14af05185f1413645b7069528d30acb58ff9d9deccf83bd1b8bdc'
'77b83cb164ea87d826259864f6a81fb33199510e1948d6daaf5c8d5ab55735a7'
'd1a3fd4930c93ccfc02c051dd6f072f19658f223b28951a8d2a19a0b46018009')
prepare() {
cd pyside-setup
git cherry-pick -n 556bc8d158b06546343ae2f51b05f555d47442c0 # Fix star imports (PYSIDE-2675)
patch -p1 < ../fix-build.patch
patch -p1 < ../missing-include.patch
}
build() {
CLANG_INSTALL_DIR="/usr" \
cmake -B build -S pyside-setup -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DSHIBOKEN_PYTHON_LIBRARIES=`pkgconf python3-embed --libs` \
-DBUILD_TESTS=OFF \
-DFORCE_LIMITED_API=no \
-DNO_QT_TOOLS=yes
PYTHONPATH="$PWD"/build/sources \
cmake --build build
}
package_shiboken6() {
pkgdesc='Generates bindings for C++ libraries using CPython source code'
depends=(clang=$_clangver
gcc-libs
glibc
libxml2
libxslt
llvm
python
qt6-base)
optdepends=('python: Python bindings')
DESTDIR="$pkgdir" cmake --install build/sources/shiboken6
# Install egg-info
export PATH="/usr/lib/qt6/bin:$PATH"
cd pyside-setup
python setup.py egg_info --build-type=shiboken6
python setup.py egg_info --build-type=shiboken6-generator
_pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
cp -r shiboken6*.egg-info "$pkgdir"/$_pythonpath
}
package_pyside6() {
pkgdesc='Enables the use of Qt6 APIs in Python applications'
depends=(gcc-libs
glibc
python
qt6-base
qt6-declarative
shiboken6)
optdepends=('qt6-3d: Qt3D bindings'
'qt6-charts: QtCharts bindings'
'qt6-connectivity: QtBluetooth and QtNfc bindings'
'qt6-datavis3d: QtDataVisualization bindings'
'qt6-graphs: QtGraphs bindings'
'qt6-httpserver: QtHttpServer bindings'
'qt6-location: QtLocation bindings'
'qt6-multimedia: QtMultimedia bindings'
'qt6-networkauth: QtNetworkAuth bindings'
'qt6-positioning: QtPositioning bindings'
'qt6-quick3d: QtQuick3D bindings'
'qt6-remoteobjects: QtRemoteObjects bindings'
'qt6-scxml: QtScxml bindings'
'qt6-sensors: QtSensors bindings'
'qt6-serialbus: QtSerialBus bindings'
'qt6-serialport: QtSerialPort bindings'
'qt6-speech: QtTextToSpeech bindings'
'qt6-svg: QtSvg bindings'
'qt6-tools: QtHelp, QtUiTools bindings'
'qt6-webchannel: QtWebChannel bindings'
'qt6-webengine: QtWebEngine bindings'
'qt6-websockets: QtWebSockets bindings')
provides=(qt6-python-bindings)
DESTDIR="$pkgdir" cmake --install build/sources/pyside6
# Install egg-info
export PATH="/usr/lib/qt6/bin:$PATH"
cd pyside-setup
python setup.py egg_info --build-type=pyside6
_pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
cp -r PySide6.egg-info "$pkgdir"/$_pythonpath
# Install pyi files
install -Dm644 "$srcdir"/build/sources/pyside6/PySide6/*.pyi -t "$pkgdir"/usr/lib/python*/site-packages/PySide6
}
package_pyside6-tools() {
pkgdesc='Tools for pyside6'
depends=(pyside6
python)
optdepends=('nuitka: for deploy.py')
DESTDIR="$pkgdir" cmake --install build/sources/pyside-tools
# Add convenience pyside6-designer wrapper
# Entry points in /usr/bin are not installed in the cmake build. This is the only one that does anything besides wrapping the Qt executable
echo "export LD_PRELOAD="`python -c "from sysconfig import get_config_var; print(get_config_var('LDLIBRARY'))"` > pyside6-designer
echo "exec designer6 \$@" >> pyside6-designer
install -Dm755 pyside6-designer -t "$pkgdir"/usr/bin
}