aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 2ec5d4ac97c3d02084568a15b99db1e53e55e161 (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
87
# Maintainer: Petr Kracik <petrkr@petrkr.net>

pkgname=freedata-server
pkgver=0.16.9
pkgrel=1
pkgdesc="FreeDATA is an open-source HF communication platform using Codec2 data modes for global digital messaging. It offers a server-client architecture, REST API and a messaging system."
arch=('x86_64')
url="https://wiki.freedata.app"
license=('GPL-3.0')
depends=('uvicorn'
	'python-pyserial'
	'python-numpy'
	'python-psutil'
	'python-sqlalchemy'
	'python-requests'
	'python-websocket-client'
	'python-fastapi'
	'python-structlog'
	'python-sounddevice')
optdepends=('freedata-gui: Add Web based GUI interface for server'
	'hamlib: Can use local RIG control')
install=freedata.install
makedepends=('cmake'
	'make'
	'gcc')

_codec2_commit="ff00a6e2489f870abb10117ff5bf4b0a64bf05d4"
source=("freedata.install"
	"FreeDATA.desktop"
	"freedata.sh"
	"https://github.com/DJ2LS/FreeDATA/archive/refs/tags/v${pkgver}.tar.gz"
	"https://github.com/drowe67/codec2/archive/${_codec2_commit}.zip")

sha256sums=('7d9b5e2cca9c7f2ee2c6beada910c0e0e0362879a10cba671e9a80247456af1d'
            '3fe415e43c909c21af1128cf2b5892d9ee3c2f39557644b228432f5d6e62da8a'
            'f6c2ab5e77ae21306337094eda4f4d4c251845a4152b50a3938750fccacd61c4'
            '962b393492fd158acf7d41d9211aa24409b98fe1fb0b96ae89e9b919d583d711'
            '40ede4f9240d6082c49483ccfa6a7f616c09d52a3715bd837f30563301c45e42')


build() {
	cd "${srcdir}"
	
	# Build codec2
	cd codec2-${_codec2_commit}
	[ -d build ] && rm -r build
	mkdir build
	cd build
	cmake ..
	make codec2 -j4
	cd ../../
	cd FreeDATA-${pkgver}/freedata_server
	python3 -m compileall .
	rm -r lib/codec2
	cd ../freedata_gui

}

package() {
	cd ${pkgdir}
	mkdir -p "usr/bin"
	mkdir -p "opt/FreeDATA"
	mkdir -p "usr/share/doc"
	mkdir -p "usr/share/licenses/${pkgname}"
	mkdir -p "usr/share/applications"
	mkdir -p "usr/share/icons/hicolor/192x192/apps"

	cd ${pkgdir}/opt/FreeDATA
	
	# Copy server
	cp -a ${srcdir}/FreeDATA-${pkgver}/freedata_server ./
	
	# Copy own codec2
	cp ${srcdir}/codec2-${_codec2_commit}/build/src/libcodec2.so* ./freedata_server/lib/

	# Copy desktop icon
	cp ${srcdir}/FreeDATA-${pkgver}/freedata_gui/public/android-chrome-192x192.png ${pkgdir}/usr/share/icons/hicolor/192x192/apps/FreeDATA.png

	# Copy desktop link
	cp ${srcdir}/FreeDATA.desktop ${pkgdir}/usr/share/applications/

	# Copy License and documentation
	cp ${srcdir}/FreeDATA-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/
	cp -a ${srcdir}/FreeDATA-${pkgver}/documentation ${pkgdir}/usr/share/doc/${pkgname}

	install -m 755 ${srcdir}/freedata.sh ${pkgdir}/usr/bin/freedata
}