blob: a6e9f206f7609d7961b337e2aba677728dba19ab (
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
|
# Maintainer: Sieve Lau <sievelau@gmail.com>
pkgname=bililiverecorder-git
pkgver=r914.9859c32
pkgrel=1
pkgdesc='BiliBili Stream Recorder. Git version.'
url="https://github.com/BililiveRecorder/BililiveRecorder"
arch=(x86_64)
provides=('bililiverecorder')
conflicts=('bililiverecorder')
license=(GPL3)
makedepends=('npm' 'dotnet-sdk>8.0' 'dotnet-runtime>8.0' 'dotnet-targeting-pack>8.0')
depends=('dotnet-runtime>8.0')
source=(
"${pkgname%-git}::git+https://github.com/BililiveRecorder/BililiveRecorder#branch=dev"
"webui-source::git+https://github.com/BililiveRecorder/BililiveRecorder-WebUI.git"
"test-data::git+https://github.com/BililiveRecorder/test-data.git"
)
md5sums=(
'SKIP'
'SKIP'
'SKIP'
)
pkgver() {
cd ${pkgname%-git}
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}
prepare(){
cd ${pkgname%-git}
git submodule init
git config submodule.webui/source.url "$srcdir/webui-source"
git config submodule.test/data.url "$srcdir/test-data"
git -c protocol.file.allow=always submodule update
# The upstream author set language version to 11.0
# which is not supported by the latest dotnet 6.0 sdk on linux
# if build using dotnet 7.0, although no error is reported during the build stage
# the executable will be unable to connect to the danmaku server
# Logging errors like: 连接弹幕服务器时出错,
# Could not load file or assembly 'System.IO.Pipelines, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
# Setting it to version 10.0 will fix the langversion problem, but brings another problem:
# error CS8652: The feature 'raw string literals' is currently in Preview and *unsupported*. To use Preview features, use the 'preview' language version. [/home/sieve/bililiverecorder-git/src/bililiverecorder/BililiveRecorder.Core/BililiveRecorder.Core.csproj]
# So the only option is 'preview'
sed -i 's/<LangVersion>11.0<\/LangVersion>/<LangVersion>preview<\/LangVersion>/' Directory.Build.props
}
build() {
cd "$srcdir/${pkgname%-git}"
# setting a global var for package()
export _bindir=$srcdir/${pkgname%-git}/binaries
mkdir -p $_bindir
# build webui
./webui/build.sh
# build the executable
dotnet build --configuration Release --runtime linux-x64 --self-contained BililiveRecorder.Cli
# the "dotnet publish" has to be here
# because it will fail without any error info in package()
dotnet publish --configuration Release --runtime linux-x64 --self-contained -o $_bindir BililiveRecorder.Cli
}
package() {
_execfile=BililiveRecorder.Cli
mkdir -p "${pkgdir}/opt/${pkgname/-git/}"
cp -r $_bindir/* ${pkgdir}/opt/${pkgname/-git/}/
# change permission, because the default permission is 777
find ${pkgdir}/opt/${pkgname/-git/} -type f -exec chmod 444 {} \;
# add back the execute permission for the main binary file
chmod +x ${pkgdir}/opt/${pkgname/-git/}/${_execfile}
mkdir -p "${pkgdir}/usr/bin"
ln -s /opt/${pkgname/-git/}/${_execfile} ${pkgdir}/usr/bin/${_execfile}
}
|