summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 25d80eca9267b968113a5045964b92c11f70006c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Maintainer: Nikos Toutountzoglou <nikos.toutou@protonmail.com>

pkgbase=superconductor
pkgname=(
	superconductor
	tsr-bridge
)
pkgver=0.11.3
pkgrel=1
_appname="SuperConductor-$pkgver"
arch=('x86_64')
url="https://github.com/SuperFlyTV/SuperConductor"
license=('AGPL3')
makedepends=(
	'yarn' 
	'nodejs>=16.16.0'
	'nodejs<=20'
)
options=(!emptydirs)
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
	'superconductor.desktop'
	'tsr-bridge.desktop')
sha256sums=('b3ce1cfaca92a21bdd20ff20b5ec32a109f5a9f93e7ffdcd29a87c2ab0a18590'
            'e11ebb8fab5d344b103cccb1b4547f66e742d55f59d8add32476f947beb23069'
            '7e3f99900f3feb6f4d9bae385adaa42a6aae46a8ac8ebcd2bd69b9dfac5e93ea')

prepare() {
	cd $_appname
	# Workaround for 'husky - .git can't be found'
	mkdir -p .git
	# Installs all dependencies, including Lerna.
	yarn install --cache-folder ../yarn-cache
}

build() {
	cd $_appname
	# Compile Typescript, run Webpack, etc:
	yarn build
	# Make binaries for the SuperConductor UI and tsr-bridge. Must have run "yarn build" first.
	# The SuperConductor UI binary will be located at apps/app/dist.
	# The tsr-bridge binary will be located at apps/tsr-bridge/dist.
	# This command should work on all platforms (Windows, macOS, and Linux).
	yarn build:binary
}

package_superconductor() {
	pkgdesc='A playout client for Windows/Linux/macOS that will let you control CasparCG Server, BMD ATEM, OBS Studio, vMix, OSC-compatible devices, HTTP (REST)-compatible devices, and more'
	depends=('alsa-lib' 'libvips')
	optdepends=('tsr-bridge: External application which handles the actual playout and control of the connected devices')
	provides=('superconductor')
	conflicts=('superconductor')

	install -d "$pkgdir"/usr/bin "$pkgdir"/usr/share
	# Install SuperConductor
	cp -av --no-preserve=ownership $_appname/apps/app/dist/linux-unpacked "$pkgdir"/usr/share/$pkgname
	ln -sf /usr/share/$pkgname/$pkgname "$pkgdir"/usr/bin/$pkgname

	# Install icons
	for i in 16 24 32 48 64 96 128 256 512 1024; do
		install -vDm 644 "$_appname/apps/app/build/icons/${i}x${i}.png" \
			"$pkgdir"/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png
	done

	# Install desktop files, license
	install -vDm644 $pkgname.desktop -t "$pkgdir"/usr/share/applications
	install -vDm644 $_appname/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
}

package_tsr-bridge() {
	pkgdesc='The TSR-bridge is the application which handles the actual playout and control of the connected devices. By default, an instance of TSR-bridge runs internally in SuperConductor, so devices can be controlled directly from the application'
	depends=('alsa-lib' 'libvips' 'superconductor')
	provides=('tsr-bridge')
	conflicts=('tsr-bridge')

	install -d "$pkgdir"/usr/bin "$pkgdir"/usr/share
	# Install TSR-Bridge
	cp -av --no-preserve=ownership $_appname/apps/tsr-bridge/dist/linux-unpacked "$pkgdir"/usr/share/tsr-bridge
	ln -sf /usr/share/tsr-bridge/tsr-bridge "$pkgdir"/usr/bin/tsr-bridge

	# Install icons
	install -vDm 644 "$_appname/apps/tsr-bridge/assets/tray.png" \
		"$pkgdir"/usr/share/icons/hicolor/48x48/apps/tsr-bridge.png

	# Install desktop files
	install -vDm644 tsr-bridge.desktop -t "$pkgdir"/usr/share/applications
}