Autogenerated commit at 2026-01-21 11:08:29.223728+00:00
This commit is contained in:
123
rustdesk/.SRCINFO
Normal file
123
rustdesk/.SRCINFO
Normal file
@ -0,0 +1,123 @@
|
||||
pkgbase = rustdesk
|
||||
pkgdesc = Yet another remote desktop software, written in Rust. Works out of the box, no configuration required. Great alternative to TeamViewer and AnyDesk!
|
||||
pkgver = 1.4.5
|
||||
pkgrel = 1
|
||||
url = https://rustdesk.com/
|
||||
install = rustdesk.install
|
||||
arch = x86_64
|
||||
license = AGPL-3.0-only
|
||||
makedepends = unzip
|
||||
makedepends = git
|
||||
makedepends = cmake
|
||||
makedepends = gcc
|
||||
makedepends = curl
|
||||
makedepends = wget
|
||||
makedepends = yasm
|
||||
makedepends = nasm
|
||||
makedepends = zip
|
||||
makedepends = make
|
||||
makedepends = pkg-config
|
||||
makedepends = clang
|
||||
makedepends = rust
|
||||
makedepends = python
|
||||
makedepends = python-yaml
|
||||
makedepends = python-toml
|
||||
makedepends = ninja
|
||||
makedepends = patchelf
|
||||
makedepends = ffnvcodec-headers
|
||||
makedepends = amf-headers
|
||||
depends = gtk3
|
||||
depends = xdotool
|
||||
depends = libxcb
|
||||
depends = libxfixes
|
||||
depends = alsa-lib
|
||||
depends = libva
|
||||
depends = libappindicator-gtk3
|
||||
depends = pam
|
||||
depends = gst-plugins-base
|
||||
depends = gst-plugin-pipewire
|
||||
depends = pulse-native-provider
|
||||
depends = gst-plugins-base-libs
|
||||
depends = hicolor-icon-theme
|
||||
depends = xdg-utils
|
||||
depends = xdg-user-dirs
|
||||
depends = glibc
|
||||
depends = gcc-libs
|
||||
depends = glib2
|
||||
depends = libxtst
|
||||
depends = libepoxy
|
||||
depends = gdk-pixbuf2
|
||||
depends = cairo
|
||||
depends = at-spi2-core
|
||||
depends = dbus
|
||||
depends = gstreamer
|
||||
depends = pango
|
||||
depends = libx11
|
||||
depends = fontconfig
|
||||
depends = libxkbcommon
|
||||
depends = libpulse
|
||||
depends = zlib
|
||||
depends = libdrm
|
||||
optdepends = intel-media-driver: h264 h265/HEVC support for Intel Quick Sync GPUs (>= Broadwell)
|
||||
optdepends = libva-intel-driver: h264 support for Intel Quick Sync GPUs (<= Haswell)
|
||||
optdepends = libva-mesa-driver: h264 h265/HEVC support for AMD and NVIDIA GPUs
|
||||
optdepends = libva-utils: vainfo query codec support
|
||||
noextract = meson-1.8.2.tar.gz
|
||||
noextract = pkgconf-pkgconf-pkgconf-2.5.1.tar.gz
|
||||
noextract = aom-10aece4157eb79315da205f39e19bf6ab3ee30d0.tar.gz
|
||||
noextract = libjpeg-turbo-libjpeg-turbo-3.1.1.tar.gz
|
||||
noextract = libyuv-0faf8dd0e004520a61a603a4d2996d5ecc80dc3f.tar.gz
|
||||
noextract = webmproject-libvpx-v1.15.2.tar.gz
|
||||
noextract = xiph-opus-v1.5.2.tar.gz
|
||||
noextract = ffmpeg-ffmpeg-n7.1.tar.gz
|
||||
options = !lto
|
||||
source = rustdesk-1.4.5.tar.gz::https://github.com/rustdesk/rustdesk/archive/refs/tags/1.4.5.tar.gz
|
||||
source = hbb_common-20251117-073403edbf1fffcb3acfe8cbe7582ee873b23398.tgz::https://github.com/rustdesk/hbb_common/archive/073403edbf1fffcb3acfe8cbe7582ee873b23398.tar.gz
|
||||
source = 0000-disable-update-check@rustdesk.patch
|
||||
source = 0002-screen_retriever@rustdesk.patch
|
||||
source = 0003-mkvparser.cc-cstdint.patch
|
||||
source = vcpkg-20250827-120deac3062162151622ca4860575a33844ba10b.tgz::https://github.com/microsoft/vcpkg/archive/120deac3062162151622ca4860575a33844ba10b.tar.gz
|
||||
source = meson-1.8.2.tar.gz::https://github.com/mesonbuild/meson/archive/refs/tags/1.8.2.tar.gz
|
||||
source = pkgconf-pkgconf-pkgconf-2.5.1.tar.gz::https://github.com/pkgconf/pkgconf/archive/refs/tags/pkgconf-2.5.1.tar.gz
|
||||
source = aom-10aece4157eb79315da205f39e19bf6ab3ee30d0.tar.gz::https://aomedia.googlesource.com/aom/+archive/10aece4157eb79315da205f39e19bf6ab3ee30d0.tar.gz
|
||||
source = libjpeg-turbo-libjpeg-turbo-3.1.1.tar.gz::https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.1.1.tar.gz
|
||||
source = libyuv-0faf8dd0e004520a61a603a4d2996d5ecc80dc3f.tar.gz::https://chromium.googlesource.com/libyuv/libyuv/+archive/0faf8dd0e004520a61a603a4d2996d5ecc80dc3f.tar.gz
|
||||
source = webmproject-libvpx-v1.15.2.tar.gz::https://github.com/webmproject/libvpx/archive/refs/tags/v1.15.2.tar.gz
|
||||
source = xiph-opus-v1.5.2.tar.gz::https://github.com/xiph/opus/archive/refs/tags/v1.5.2.tar.gz
|
||||
source = ffmpeg-ffmpeg-n7.1.tar.gz::https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.1.tar.gz
|
||||
source = https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.5-stable.tar.xz
|
||||
source = flutter_rust_bridge-1.80.1.tar.gz::https://github.com/fzyzcjy/flutter_rust_bridge/archive/refs/tags/v1.80.1.tar.gz
|
||||
md5sums = e85ddd2397cb3c4d431c6922997862ce
|
||||
md5sums = 5ed04fc39bda6e7f93e5237492e2a263
|
||||
md5sums = 6acc4b5b14befec55ef84006b60c7ff5
|
||||
md5sums = a77a4586f30f77de2eed63e160b3a051
|
||||
md5sums = 379cfba8479c2a92e05e3b855d1e6901
|
||||
md5sums = 56b134202b1ea88389d24d1c99635f6a
|
||||
md5sums = 7887064dc9ce1cf7ae1c869bacd8e27e
|
||||
md5sums = 7745ca9bd6d05af8af0afd209375e209
|
||||
md5sums = SKIP
|
||||
md5sums = 4cc83d985db61e64bfa352388bb447ec
|
||||
md5sums = SKIP
|
||||
md5sums = 4c7a93808c12b359733430c8377b7fcf
|
||||
md5sums = 557a08d88aa605ee6cf4156686ce4cc2
|
||||
md5sums = 03485098fb64a000a4f7cd97e468dfff
|
||||
md5sums = a3efc04e00cede00296f1a0dc323e8d1
|
||||
md5sums = cc8e5418ff0c163228aabbe385ba2596
|
||||
sha256sums = 0bf3b6f1e447bf7c24bbc005df2c6b91a60f05a873a4df8798fb1f711d22faa4
|
||||
sha256sums = 73f44cefbc27b32f259de84e19a251f196e53d096d15c747197d37d9b79e6ee5
|
||||
sha256sums = 8f7f1019404ce47dc012ba7c546ad634b973452fc2c57ac64b62cdc7c1f54ea3
|
||||
sha256sums = 82757ee1ab6b956a3c601f7db82e2d9ad80dbbcf2ba68c63059f0b529426ccd0
|
||||
sha256sums = 359046f24f8a81b96a198000a1cfd7934c1f4870b2a1306e13f65694cefef68f
|
||||
sha256sums = f3b1ec711fa1ba291efd75e27983898a37be15760dfe129a406448fa7377b31d
|
||||
sha256sums = 6b878fb0f6f0318cbd54e13539f89a1a8305791668e8e93ffd59d82722888dac
|
||||
sha256sums = 79721badcad1987dead9c3609eb4877ab9b58821c06bdacb824f2c8897c11f2a
|
||||
sha256sums = SKIP
|
||||
sha256sums = 304165ae11e64ab752e9cfc07c37bfdc87abd0bfe4bc699e59f34036d9c84f72
|
||||
sha256sums = SKIP
|
||||
sha256sums = 26fcd3db88045dee380e581862a6ef106f49b74b6396ee95c2993a260b4636aa
|
||||
sha256sums = 9480e329e989f70d69886ded470c7f8cfe6c0667cc4196d4837ac9e668fb7404
|
||||
sha256sums = 7ddad2d992bd250a6c56053c26029f7e728bebf0f37f80cf3f8a0e6ec706431a
|
||||
sha256sums = a7c82f551a9eae018e078f6bb186171e5a77920d35a3d75a61d9a593d0a9e4ae
|
||||
sha256sums = 5c1494e79024de228a9f383c8e52e45b042cd0cf24f4b0f47ee4d5448938b336
|
||||
|
||||
pkgname = rustdesk
|
||||
16
rustdesk/0000-disable-update-check@rustdesk.patch
Normal file
16
rustdesk/0000-disable-update-check@rustdesk.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff -pNaru5 a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart
|
||||
--- a/flutter/lib/desktop/pages/desktop_home_page.dart 2024-12-21 02:09:03.000000000 -0500
|
||||
+++ b/flutter/lib/desktop/pages/desktop_home_page.dart 2024-12-23 00:34:54.631074022 -0500
|
||||
@@ -422,11 +422,11 @@ class _DesktopHomePageState extends Stat
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget buildHelpCards(String updateUrl) {
|
||||
- if (!bind.isCustomClient() &&
|
||||
+ if (false && !bind.isCustomClient() &&
|
||||
updateUrl.isNotEmpty &&
|
||||
!isCardClosed &&
|
||||
bind.mainUriPrefixSync().contains('rustdesk')) {
|
||||
return buildInstallCard(
|
||||
"Status",
|
||||
@ -0,0 +1,16 @@
|
||||
diff -pNaru5 a/flutter/pubspec.yaml b/flutter/pubspec.yaml
|
||||
--- a/flutter/pubspec.yaml 2025-07-23 09:44:30.293953846 -0400
|
||||
+++ b/flutter/pubspec.yaml 2025-07-23 09:44:53.294155752 -0400
|
||||
@@ -104,11 +104,11 @@ dependencies:
|
||||
url: https://github.com/rustdesk-org/dynamic_layouts.git
|
||||
ref: 24cb88413fa5181d949ddacbb30a65d5c459e7d9
|
||||
pull_down_button: ^0.9.3
|
||||
device_info_plus: ^9.1.0
|
||||
qr_flutter: ^4.1.0
|
||||
- extended_text: 14.0.0
|
||||
+ extended_text: 13.1.0
|
||||
xterm: 4.0.0
|
||||
sqflite: 2.2.0
|
||||
google_fonts: ^6.2.1
|
||||
|
||||
dev_dependencies:
|
||||
11
rustdesk/0002-screen_retriever@rustdesk.patch
Normal file
11
rustdesk/0002-screen_retriever@rustdesk.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -pNaru3 a/flutter/pubspec.yaml b/flutter/pubspec.yaml
|
||||
--- a/flutter/pubspec.yaml 2025-01-06 01:00:58.263460942 -0500
|
||||
+++ b/flutter/pubspec.yaml 2025-01-06 01:01:23.960122697 -0500
|
||||
@@ -27,6 +27,7 @@ dependencies:
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
|
||||
+ screen_retriever:
|
||||
ffi: ^2.1.0
|
||||
path_provider: ^2.1.1
|
||||
external_path: ^1.0.3
|
||||
10
rustdesk/0003-mkvparser.cc-cstdint.patch
Normal file
10
rustdesk/0003-mkvparser.cc-cstdint.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- mkvparser.cc.old 2025-05-05 16:41:32.480450346 -0400
|
||||
+++ mkvparser.cc 2025-05-05 16:44:56.578245385 -0400
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <cfloat>
|
||||
#include <climits>
|
||||
#include <cmath>
|
||||
+#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <memory>
|
||||
#include <new>
|
||||
611
rustdesk/PKGBUILD
Normal file
611
rustdesk/PKGBUILD
Normal file
@ -0,0 +1,611 @@
|
||||
# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
|
||||
# Contributor: Rojikku <RojikkuNoKami at gmail dot com>
|
||||
# Contributor: Tech <technetium1337 at gmail dot com>
|
||||
|
||||
# Clean Chroot ccm Xeon(R) E-2146G 6c12t: ----> Total build time for 1.4.1-hwcodec was 00:21:24
|
||||
# Clean chroot build is smaller than the system build
|
||||
|
||||
# rm -rf ~/.cache/vcpkg ~/.cargo ~/.pub-cache
|
||||
|
||||
# 0 for PKGBUILD commands which may go out of date
|
||||
# 1 for build.py which should stay current
|
||||
_opt_BUILD_PY=1
|
||||
|
||||
#vercmp --help > /dev/null 2>&1 || vercmp() { echo '0'; } # compatible with namcap sandbox
|
||||
# namcap sandbox won't let us run pacman /usr/bin/vercmp so we'll rewrite it
|
||||
# No need to change vercmp that namcap doesn't see
|
||||
# $1 is the complex version, could be 1.4.1.r10629.g7a3e67e
|
||||
# $2 is the simple version, always 3 dotted numbers 1.4.1
|
||||
_vercmp() {
|
||||
local pla pra rv='0' i
|
||||
IFS='.' read -ra pla <<< "${1##.r*}"
|
||||
IFS='.' read -ra pra <<< "$2"
|
||||
for ((i = 0 ; i < "${#pra[@]}" ; i++ )); do
|
||||
if [ "${pla[i]}" -lt "${pra[i]}" ]; then
|
||||
rv='-1'
|
||||
break
|
||||
elif [ "${pla[i]}" -gt "${pra[i]}" ]; then
|
||||
rv='1'
|
||||
break
|
||||
fi
|
||||
done
|
||||
printf '%s' "${rv}"
|
||||
}
|
||||
#_vercmp '1.3.7' '1.4.1'; exit 1
|
||||
#_vercmp '1.4.1.r10629.g7a3e67e' '1.4.1'; exit 1
|
||||
#_vercmp '1.4.2' '1.4.1'; exit 1
|
||||
|
||||
# _opt_SYS_VCPKG is removed. We will never be able to use the system vcpkg.
|
||||
_opt_VCPKG_COMMIT_ID=''
|
||||
# Select from list an item which matches pkgver. This allows to compile recent versions without excessive PKGBUILD hacking.
|
||||
# $1: pkgver
|
||||
# $2: vercmp test operator -ge or -eq
|
||||
_fn_VCL() {
|
||||
local _q="$1" _v _vx='?' _vy='' _v1 _v2
|
||||
shift
|
||||
local _t="$1"
|
||||
shift
|
||||
while [ "$#" -gt 0 ]; do
|
||||
_v="$1"
|
||||
_v1="${_v%%:*}"
|
||||
_v2="${_v#*:}"
|
||||
if [ "$(_vercmp "${_q}" "${_v1}")" "${_t}" 0 ]; then
|
||||
_vx="${_v}"
|
||||
_vy="${_v2}"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
#printf '%s >= %s\n' "${_q}" "${_vx}" 1>&2
|
||||
printf '%s' "${_vy}"
|
||||
}
|
||||
#_opt_VCPKG_COMMIT_ID='#branch=2023.10.19'
|
||||
|
||||
# _opt_SYS_FLUTTER is removed. We will never be able to use the system installed version
|
||||
|
||||
# 0 for package flutter
|
||||
# 1 for fvm flutter
|
||||
_opt_FVM_FLUTTER=0
|
||||
|
||||
_opt_NICE='nice -n1'
|
||||
|
||||
# hwcodec for H.264 H.265/HEVC stopped compiling when it went from/to
|
||||
# 1.2.7 hwcodec v0.6.0 builtin (https://github.com/21pages/hwcodec#89879f2f)
|
||||
# 1.3.0 hwcodec v0.7.0 vcpkg::ffmpeg (https://github.com/rustdesk-org/hwcodec#6abd1898)
|
||||
# restored in 1.4.1
|
||||
#
|
||||
# To get H264 H265, rustdesk must be compiled with vcpkg::ffmpeg build modified by rustdesk.
|
||||
# libva and appropriate libva hardware driver must be installed and rebooted. See optdepends.
|
||||
# Client supports all soft codecs and compiled in hardware codecs.
|
||||
# Client hardware decode support (VAEntrypointVLD) preferred but not required.
|
||||
# Host offers all encode software codecs and only hardware codecs supported by hardware (VAEntrypointEncSlice).
|
||||
# Linux host may disable H265 even if supported by hardware. https://github.com/rustdesk/rustdesk/discussions/4095
|
||||
# Linux client does support H265, verified by connecting to a Windows host >= Skylake or Android.
|
||||
# Use libva-utils::vainfo to list supported hardware codecs VAProfileH264Main or VAProfileHEVCMain
|
||||
# https://wiki.archlinux.org/title/Hardware_video_acceleration
|
||||
_fn_hwcodec() {
|
||||
_opt_hwcodec_py=()
|
||||
_opt_hwcodec_fe=''
|
||||
_opt_hwcodec_vc=()
|
||||
if :; then
|
||||
_opt_hwcodec_py=('--hwcodec')
|
||||
_opt_hwcodec_fe=',hwcodec'
|
||||
if [ "$(_vercmp "$1" "1.3.0")" -ge 0 ]; then
|
||||
_opt_hwcodec_vc=('ffmpeg')
|
||||
makedepends+=('ffnvcodec-headers' 'amf-headers')
|
||||
depends+=('zlib' 'libdrm')
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
true "${QUIET:=}" "${logpipe:=}"
|
||||
|
||||
DLAGENTS="${DLAGENTS[@]/curl /curl -L}"
|
||||
|
||||
set -u
|
||||
_pkgname='rustdesk'
|
||||
pkgname="${_pkgname}"
|
||||
_pkgver='1.4.5'
|
||||
pkgver="${_pkgver//-/.}"
|
||||
pkgrel=1
|
||||
_sfx=''
|
||||
#_sfx='-pr1-998b758'
|
||||
_HBB=( # dates are retrieved from git fetch; tig. Every version gets a specific hbb.
|
||||
'1.3.7:20250120-49c6b24a7a8c39d4448e07b743007ef1a3febd43'
|
||||
'1.3.8:20250223-7cf11f7b771e27ecbd14fd1dd0ced55a64f40eb5'
|
||||
'1.3.9:20250328-81b932b7bfa2ff8bc60189625fd6538db2fa9ea1'
|
||||
'1.4.0:20250509-6e556f7e1751a3a709cd5cca0df7268ba3cb1c48'
|
||||
'1.4.1:20250718-f91459c4ab80fc3cfdef0882b2af51f984bc914c'
|
||||
'1.4.2:20250904-9e7696c7d4e346508ba68e801a53c6d1f1748fb5'
|
||||
'1.4.3:20251008-5ed0afde0841659e2fb37ae7acaddc005fa1a8d3'
|
||||
'1.4.4:20251117-a86eda749e6fa33c282bab680e6b504d3ad87539'
|
||||
'1.4.5:20251117-073403edbf1fffcb3acfe8cbe7582ee873b23398'
|
||||
)
|
||||
_pkgverhbb="$(_fn_VCL "${_pkgver}" -eq "${_HBB[@]}")"; unset _HBB; test "$(_vercmp "${_pkgver}" '1.3.7')" -lt 0 -o ! -z "${_pkgverhbb}" || exit 1
|
||||
pkgdesc='Yet another remote desktop software, written in Rust. Works out of the box, no configuration required. Great alternative to TeamViewer and AnyDesk!'
|
||||
arch=('x86_64')
|
||||
url='https://rustdesk.com/'
|
||||
_giturl='https://github.com/rustdesk/rustdesk'
|
||||
_giturlhbb='https://github.com/rustdesk/hbb_common'
|
||||
license=('AGPL-3.0-only')
|
||||
_dpr=('gtk3' 'xdotool' 'libxcb' 'libxfixes' 'alsa-lib' 'libva' 'libappindicator-gtk3' 'pam' 'gst-plugins-base' 'gst-plugin-pipewire') # from res/PKGBUILD/depends
|
||||
#_dpr=('gtk3' 'xdotool' 'libxcb' 'libxfixes' 'alsa-lib' 'libva' 'libvdpau' 'libappindicator-gtk3' 'pam' 'gst-plugins-base' 'gst-plugin-pipewire') # from res/PKGBUILD/depends
|
||||
depends=("${_dpr[@]}" 'pulse-native-provider' 'gst-plugins-base-libs')
|
||||
depends+=('hicolor-icon-theme' 'xdg-utils')
|
||||
depends+=('xdg-user-dirs')
|
||||
depends+=('glibc' 'gcc-libs' 'glib2' 'libxtst' 'libepoxy' 'gdk-pixbuf2' 'cairo' 'at-spi2-core' 'dbus' 'gstreamer' 'pango' 'libx11' 'fontconfig' 'libxkbcommon' 'libpulse')
|
||||
_mdp=('unzip' 'git' 'cmake' 'gcc' 'curl' 'wget' 'yasm' 'nasm' 'zip' 'make' 'pkg-config' 'clang') # from Readme.MD
|
||||
makedepends=("${_mdp[@]}" 'rust' 'python' 'python-yaml' 'python-toml')
|
||||
makedepends+=('ninja' 'patchelf') # 'meson' 'pkgconf' # vcpkg makedepends are found in clean chroot. Some tools cmake always uses its own.
|
||||
_fn_hwcodec "${_pkgver}" # makedepends
|
||||
if [ "${#_opt_hwcodec_py[@]}" -gt 0 ]; then
|
||||
optdepends=( # lifted from libva::PKGBUILD
|
||||
'intel-media-driver: h264 h265/HEVC support for Intel Quick Sync GPUs (>= Broadwell)'
|
||||
'libva-intel-driver: h264 support for Intel Quick Sync GPUs (<= Haswell)'
|
||||
'libva-mesa-driver: h264 h265/HEVC support for AMD and NVIDIA GPUs'
|
||||
'libva-utils: vainfo query codec support'
|
||||
)
|
||||
fi
|
||||
options=('!lto')
|
||||
_patches=(
|
||||
'0000-disable-update-check@rustdesk.patch'
|
||||
#'0001-extended_text-drop-version-for-flutter.3.22.3@rustdesk.patch' # https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/bridge.yml#L77
|
||||
'0002-screen_retriever@rustdesk.patch'
|
||||
)
|
||||
install="${pkgname}.install"
|
||||
_srcdir="${pkgname}-${_pkgver}"
|
||||
source=(
|
||||
"${_srcdir}${_sfx}.tar.gz::${_giturl}/archive/refs/tags/${_pkgver}.tar.gz"
|
||||
"${_patches[@]}"
|
||||
'0003-mkvparser.cc-cstdint.patch'
|
||||
)
|
||||
if [ ! -z "${_pkgverhbb}" ]; then
|
||||
_srcdirhb="hbb_common-${_pkgverhbb##*-}"
|
||||
source=("${source[0]}" "hbb_common-${_pkgverhbb}.tgz::${_giturlhbb}/archive/${_pkgverhbb##*-}.tar.gz" "${source[@]:1}")
|
||||
fi
|
||||
unset _pkgverhbb
|
||||
_vcs=(
|
||||
)
|
||||
_srcdirvc='vcpkg'
|
||||
if :; then
|
||||
_VCL=(
|
||||
'1.2.7:#commit=20240614-f7423ee180c4b7f40d43402c2feb3859161ef625' # last version that worked with hwcodec
|
||||
'1.3.0:#commit=20240712-1de2026f28ead93ff1773e6e680387643e914ea1'
|
||||
'1.3.6:#commit=20241115-b2cb0da531c2f1f740045bfe7c4dac59f0b2b69c'
|
||||
'1.3.8:#commit=20250113-6f29f12e82a8293156836ad81cc9bf5af41fe836'
|
||||
'1.4.2:#commit=20250827-120deac3062162151622ca4860575a33844ba10b' # date comes from commit (tig)
|
||||
)
|
||||
_opt_VCPKG_COMMIT_ID="$(_fn_VCL "${_pkgver}" -ge "${_VCL[@]}")"; unset _VCL
|
||||
#source+=("git+https://github.com/microsoft/vcpkg${_opt_VCPKG_COMMIT_ID}")
|
||||
_srcdirvc="vcpkg-${_opt_VCPKG_COMMIT_ID##*-}"
|
||||
source+=("vcpkg-${_opt_VCPKG_COMMIT_ID##*=}.tgz::https://github.com/microsoft/vcpkg/archive/${_opt_VCPKG_COMMIT_ID##*-}.tar.gz")
|
||||
_meaver='1.8.2'
|
||||
_pcfver='2.5.1'
|
||||
_aomver='10aece4157eb79315da205f39e19bf6ab3ee30d0'
|
||||
_jpgver='3.1.1'
|
||||
_yuvver='0faf8dd0e004520a61a603a4d2996d5ecc80dc3f'
|
||||
_wbmver='1.15.2'
|
||||
_xipver='1.5.2'
|
||||
_vcs+=(
|
||||
"meson-${_meaver}.tar.gz::https://github.com/mesonbuild/meson/archive/refs/tags/${_meaver}.tar.gz" # meason and pkgconf versions are found in clean chroot
|
||||
"pkgconf-pkgconf-pkgconf-${_pcfver}.tar.gz::https://github.com/pkgconf/pkgconf/archive/refs/tags/pkgconf-${_pcfver}.tar.gz"
|
||||
# If your download gets renamed and replaced, vcpkg hash checked and found it to be the wrong one.
|
||||
# vcs sources are not hash checked. vcpkg doesn't use hash direct downloads like we do. vcpkg downloads with git and tars up, always with a different hash.
|
||||
"aom-${_aomver}.tar.gz::https://aomedia.googlesource.com/aom/+archive/${_aomver}.tar.gz"
|
||||
"libjpeg-turbo-libjpeg-turbo-${_jpgver}.tar.gz::https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/${_jpgver}.tar.gz"
|
||||
"libyuv-${_yuvver}.tar.gz::https://chromium.googlesource.com/libyuv/libyuv/+archive/${_yuvver}.tar.gz"
|
||||
"webmproject-libvpx-v${_wbmver}.tar.gz::https://github.com/webmproject/libvpx/archive/refs/tags/v${_wbmver}.tar.gz"
|
||||
"xiph-opus-v${_xipver}.tar.gz::https://github.com/xiph/opus/archive/refs/tags/v${_xipver}.tar.gz"
|
||||
)
|
||||
unset _meaver _pcfver _aomver _jpgver _yuvver _wbmver _xipver
|
||||
if [ "${#_opt_hwcodec_vc[@]}" -ne 0 ]; then
|
||||
_ffmver='7.1'
|
||||
_vcs+=("ffmpeg-ffmpeg-n${_ffmver}.tar.gz::https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n${_ffmver}.tar.gz")
|
||||
unset _ffmver
|
||||
fi
|
||||
fi
|
||||
source+=("${_vcs[@]}")
|
||||
_FLX=(
|
||||
'1.2.7:3.19.6'
|
||||
#'1.3.3:3.24.5' # flutter_rust_bridge won't build
|
||||
'1.4.1:3.24.5' # 3.27.4 also works
|
||||
)
|
||||
_FLUVER="$(_fn_VCL "${_pkgver}" -ge "${_FLX[@]}")"; unset _FLX # https://docs.flutter.dev/release/archive
|
||||
if [ "${_opt_FVM_FLUTTER}" -eq 0 ]; then
|
||||
source+=(
|
||||
"https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${_FLUVER}-stable.tar.xz"
|
||||
)
|
||||
else
|
||||
makedepends+=('fvm')
|
||||
fi
|
||||
if :; then
|
||||
_FRBVER='1.80.1'
|
||||
_srcdirfrb="flutter_rust_bridge-${_FRBVER}"
|
||||
source+=(
|
||||
"${_srcdirfrb}.tar.gz::https://github.com/fzyzcjy/flutter_rust_bridge/archive/refs/tags/v${_FRBVER}.tar.gz"
|
||||
)
|
||||
fi
|
||||
####
|
||||
md5sums=('e85ddd2397cb3c4d431c6922997862ce'
|
||||
'5ed04fc39bda6e7f93e5237492e2a263'
|
||||
'6acc4b5b14befec55ef84006b60c7ff5'
|
||||
'a77a4586f30f77de2eed63e160b3a051'
|
||||
'379cfba8479c2a92e05e3b855d1e6901'
|
||||
'56b134202b1ea88389d24d1c99635f6a'
|
||||
'7887064dc9ce1cf7ae1c869bacd8e27e'
|
||||
'7745ca9bd6d05af8af0afd209375e209'
|
||||
'9b056bb94ba70d6ec3f5901544239268'
|
||||
'4cc83d985db61e64bfa352388bb447ec'
|
||||
'f2f3868524b82915da3700267d116cdf'
|
||||
'4c7a93808c12b359733430c8377b7fcf'
|
||||
'557a08d88aa605ee6cf4156686ce4cc2'
|
||||
'03485098fb64a000a4f7cd97e468dfff'
|
||||
'a3efc04e00cede00296f1a0dc323e8d1'
|
||||
'cc8e5418ff0c163228aabbe385ba2596')
|
||||
sha256sums=('0bf3b6f1e447bf7c24bbc005df2c6b91a60f05a873a4df8798fb1f711d22faa4'
|
||||
'73f44cefbc27b32f259de84e19a251f196e53d096d15c747197d37d9b79e6ee5'
|
||||
'8f7f1019404ce47dc012ba7c546ad634b973452fc2c57ac64b62cdc7c1f54ea3'
|
||||
'82757ee1ab6b956a3c601f7db82e2d9ad80dbbcf2ba68c63059f0b529426ccd0'
|
||||
'359046f24f8a81b96a198000a1cfd7934c1f4870b2a1306e13f65694cefef68f'
|
||||
'f3b1ec711fa1ba291efd75e27983898a37be15760dfe129a406448fa7377b31d'
|
||||
'6b878fb0f6f0318cbd54e13539f89a1a8305791668e8e93ffd59d82722888dac'
|
||||
'79721badcad1987dead9c3609eb4877ab9b58821c06bdacb824f2c8897c11f2a'
|
||||
'2399c0f128ef148a785c139d631a204458b1715bb2cfb54acc65613c22d89d5c'
|
||||
'304165ae11e64ab752e9cfc07c37bfdc87abd0bfe4bc699e59f34036d9c84f72'
|
||||
'73a4ecb598cd6824cb7a0a0d934d81b866e2762acd8eb465e1510063b4649659'
|
||||
'26fcd3db88045dee380e581862a6ef106f49b74b6396ee95c2993a260b4636aa'
|
||||
'9480e329e989f70d69886ded470c7f8cfe6c0667cc4196d4837ac9e668fb7404'
|
||||
'7ddad2d992bd250a6c56053c26029f7e728bebf0f37f80cf3f8a0e6ec706431a'
|
||||
'a7c82f551a9eae018e078f6bb186171e5a77920d35a3d75a61d9a593d0a9e4ae'
|
||||
'5c1494e79024de228a9f383c8e52e45b042cd0cf24f4b0f47ee4d5448938b336')
|
||||
_vcs=("${_vcs[@]%%::*}")
|
||||
_vcs=("${_vcs[@]##*/}")
|
||||
noextract=("${_vcs[@]}")
|
||||
|
||||
if ! :; then
|
||||
_srcdir="${_pkgname}"
|
||||
source[0]="git+${_giturl}#tag=${_pkgver}"
|
||||
fi
|
||||
|
||||
# updpkgsums now uses hashes for git commits, which are different than the git commit hashes. We want the original behavior SKIP.
|
||||
# googlesource commit direct downloads do not have consistent hashes
|
||||
for _fk in "${!source[@]}"; do
|
||||
if [ "${source[${_fk}]#git}" != "${source[${_fk}]}" ] || [ "${source[${_fk}]/googlesource/}" != "${source[${_fk}]}" ]; then
|
||||
md5sums["${_fk}"]='SKIP'
|
||||
sha256sums["${_fk}"]='SKIP'
|
||||
fi
|
||||
done
|
||||
unset _fk
|
||||
|
||||
_vcpkg=(libvpx libyuv opus aom)
|
||||
|
||||
_prepare_vc() {
|
||||
local -
|
||||
msg '_prepare_vc'
|
||||
set -u
|
||||
mkdir -p "${_srcdirvc}/downloads"
|
||||
if [ "${#_vcs[@]}" -gt 0 ]; then
|
||||
cp -p "${_vcs[@]}" "${_srcdirvc}/downloads"
|
||||
fi
|
||||
|
||||
# Check commit ID
|
||||
if :; then # [ ! -z "${_opt_VCPKG_COMMIT_ID}" ]; then
|
||||
local _vcc
|
||||
local _pyvcc="
|
||||
import yaml
|
||||
import io
|
||||
with open('${_srcdir}/.github/workflows/flutter-build.yml', 'r') as stream:
|
||||
data_loaded = yaml.safe_load(stream)
|
||||
#print(data_loaded.get('env').keys())
|
||||
print(data_loaded.get('env').get('VCPKG_COMMIT_ID'))
|
||||
"
|
||||
_vcc="$(python -c "${_pyvcc}")"
|
||||
if [ "${_vcc}" != "${_opt_VCPKG_COMMIT_ID##*-}" ]; then
|
||||
echo "Flag package out of date: _opt_VCPKG_COMMIT_ID must be changed to (date)-${_vcc}"
|
||||
set +u
|
||||
false
|
||||
fi
|
||||
fi
|
||||
|
||||
local _vcpkgnew
|
||||
_vcpkgnew="$(sed -E -n -e '/Linux.+: vcpkg / s:^.+install ::p' "${_srcdir}/README.md")"
|
||||
if [ "${_vcpkg[*]}" != "${_vcpkgnew}" ]; then
|
||||
printf 'Flag package out of date: _vcpkg=(%s)\n' "${_vcpkgnew}"
|
||||
set +u
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
# Same elements in same order
|
||||
_dpr_check() {
|
||||
local -
|
||||
msg '_dpr_check'
|
||||
set -u
|
||||
pushd "${_srcdir}" > /dev/null
|
||||
(
|
||||
source 'res/PKGBUILD'
|
||||
if [ "${#_dpr[@]}" -ne "${#depends[@]}" ]; then
|
||||
echo 'Flag package out of date: Update _dpr from res/PKGBUILD/depends=()'
|
||||
false
|
||||
fi
|
||||
for((f=0; f<"${#_dpr[@]}"; f++)); do
|
||||
if [ "${_dpr[f]}" != "${depends[f]}" ]; then
|
||||
echo 'Flag package out of date: Update _dpr from res/PKGBUILD/depends=()'
|
||||
set +u
|
||||
false
|
||||
fi
|
||||
done
|
||||
)
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
_flutter_check() {
|
||||
local -
|
||||
set +u; msg '_flutter_check'; set -u
|
||||
pushd "${_srcdir}"
|
||||
local _FLUTTER_VERSION
|
||||
local _pyfv="
|
||||
import yaml
|
||||
import io
|
||||
with open('.github/workflows/flutter-build.yml', 'r') as stream:
|
||||
#with open('.github/workflows/bridge.yml', 'r') as stream:
|
||||
data_loaded = yaml.safe_load(stream)
|
||||
#print(data_loaded.get('env').keys())
|
||||
print(data_loaded.get('env').get('FLUTTER_VERSION'))
|
||||
"
|
||||
_FLUTTER_VERSION="$(python -c "${_pyfv}")"
|
||||
if [ "${_FLUTTER_VERSION}" != "${_FLUVER}" ]; then
|
||||
if [ "${_opt_FVM_FLUTTER}" -ne 0 ]; then
|
||||
set +u; msg2 "Warning: expected Flutter version is ${_FLUTTER_VERSION}"; set -u
|
||||
_FLUTTER_VERSION="${_FLUVER}"
|
||||
else
|
||||
printf 'Flutter version has changed to %s from %s\n' "${_FLUTTER_VERSION}" "${_FLUVER}"
|
||||
set +u
|
||||
false
|
||||
fi
|
||||
fi
|
||||
set +u; msg2 "FLUTTER_VERSION=${_FLUTTER_VERSION}"; set -u
|
||||
local _flutter_rust_bridge
|
||||
local _pyfrb="
|
||||
import toml
|
||||
new_toml_string = toml.load('Cargo.toml')
|
||||
#print(new_toml_string.keys())
|
||||
print(new_toml_string.get('dependencies').get('flutter_rust_bridge').get('version'))
|
||||
"
|
||||
local _pyfrb="
|
||||
import yaml
|
||||
import io
|
||||
with open('.github/workflows/bridge.yml', 'r') as stream:
|
||||
data_loaded = yaml.safe_load(stream)
|
||||
#print(data_loaded.get('env').keys())
|
||||
print(data_loaded.get('env').get('FLUTTER_RUST_BRIDGE_VERSION'))
|
||||
"
|
||||
_flutter_rust_bridge="$(python -c "${_pyfrb}")"
|
||||
_flutter_rust_bridge="${_flutter_rust_bridge#=}"
|
||||
if [ "$(vercmp "${_flutter_rust_bridge}" "${_FRBVER%.0}")" -gt 0 ]; then
|
||||
printf 'flutter_rust_bridge version has changed to %s from %s\n' "${_flutter_rust_bridge}" "${_FRBVER}"
|
||||
set +u
|
||||
false
|
||||
fi
|
||||
set +u; msg2 "flutter_rust_bridge=${_flutter_rust_bridge}"; set -u
|
||||
popd
|
||||
}
|
||||
|
||||
_mod_py() {
|
||||
local -
|
||||
if [ "$(grep -c -F -e 'os.system' 'build.py')" -gt 1 ]; then
|
||||
local _lf=$'\n'
|
||||
local _nc='
|
||||
def systemecho(cmd):
|
||||
print(cmd)
|
||||
return os.system(cmd)
|
||||
|
||||
'
|
||||
_nc="${_nc//${_lf}/\\n}"
|
||||
sed -e '# echo all system commands' \
|
||||
-e 's:os.system:systemecho:g' \
|
||||
-e "s/^def get_version/${_nc}&/g" \
|
||||
-e '# Disable makepkg' \
|
||||
-e 's:makepkg:true &:g' \
|
||||
-e '/pkg.tar.zst/ s:mv:true &:g' \
|
||||
-i 'build.py'
|
||||
fi
|
||||
if [ "${source[0]#git}" = "${source[0]}" ]; then
|
||||
sed -e 's:git checkout:true &:g' -i 'build.py'
|
||||
fi
|
||||
}
|
||||
|
||||
_fn_setvars() {
|
||||
_FVC="${SRCDEST}/fvm-cache" # Default cache folder for fvm-3.2.1 is ~/fvm, not ~/.fvm as you'd expect and the docs seem to indicate.
|
||||
_FBIN="${srcdir}/flutterbin"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
local -
|
||||
_dpr_check
|
||||
#rm -rf ~/'.cache/vcpkg/archives' ~/'.vcpkg'
|
||||
_prepare_vc
|
||||
pushd "${_srcdir}/res/vcpkg" > /dev/null
|
||||
cp -pr . "${srcdir}/${_srcdirvc}/ports/" # the default vcpkg::ffmpeg build does not produce the correct libraries or codecs libavcodec.a libavutil.a libavformat.a. Use Rustdesk mods
|
||||
popd > /dev/null
|
||||
set -u
|
||||
_flutter_check
|
||||
local _FVC _FBIN; _fn_setvars
|
||||
if [ "${_opt_FVM_FLUTTER}" -ne 0 ]; then
|
||||
set +u; msg2 "fvm cache to ${_FVC}"; set -u
|
||||
FVM_CACHE_PATH="${_FVC}" \
|
||||
fvm install "${_FLUVER}"
|
||||
ln -s "${_FVC}/versions/${_FLUVER}" 'flutter'
|
||||
fi
|
||||
if [ ! -d 'flutter_rust_bridge' ]; then
|
||||
ln -s "flutter_rust_bridge-${_FRBVER}" 'flutter_rust_bridge'
|
||||
test -d 'flutter_rust_bridge'
|
||||
fi
|
||||
mkdir -p "${_FBIN}"
|
||||
pushd "${_FBIN}"
|
||||
cat > 'flutter' << EOF
|
||||
#!/usr/bin/bash
|
||||
|
||||
# https://github.com/flutter/flutter/issues/59533
|
||||
# Gets rid of all the unnecessary downloads
|
||||
|
||||
_FBIN="${_FBIN}"
|
||||
export PATH="\${PATH/\${_FBIN}:/}"
|
||||
|
||||
echo '#flutter --no-version-check' "\$@"
|
||||
${srcdir}/flutter/bin/flutter --no-version-check "\$@"
|
||||
EOF
|
||||
chmod 755 'flutter'
|
||||
cat > 'dart' << EOF
|
||||
#!/usr/bin/bash
|
||||
|
||||
# dart doesn't do a version check. Let's reveal the commands.
|
||||
|
||||
_FBIN="${_FBIN}"
|
||||
export PATH="\${PATH/\${_FBIN}:/}"
|
||||
|
||||
echo '#dart' "\$@"
|
||||
${srcdir}/flutter/bin/dart "\$@"
|
||||
EOF
|
||||
chmod 755 'dart'
|
||||
popd
|
||||
|
||||
cd "${_srcdir}"
|
||||
_mod_py
|
||||
if rmdir 'libs/hbb_common'; then
|
||||
pushd 'libs' > /dev/null
|
||||
test -d "${srcdir}/${_srcdirhb}"
|
||||
ln -sr "${srcdir}/${_srcdirhb}" 'hbb_common'
|
||||
popd > /dev/null
|
||||
fi
|
||||
|
||||
local _pt _ptf=() _pts=() _ptd
|
||||
for _pt in "${_patches[@]}"; do
|
||||
set +u; msg2 "Patch ${_pt}"; set -u
|
||||
_ptd=()
|
||||
if [[ "${_pt}" =~ ^[^@]+@([^.]+).patch$ ]]; then
|
||||
case "${BASH_REMATCH[1]}" in
|
||||
'rustdesk') _ptd=(-d "${srcdir}/${_srcdir}");;
|
||||
'flutter_rust_bridge') _ptd=(-d "${srcdir}/${_srcdirfrb}");;
|
||||
'vcpkg') _ptd=(-d "${srcdir}/${_srcdirvc}") ;;
|
||||
*) _ptd=(-d "${srcdir}/${BASH_REMATCH[1]}");;
|
||||
esac
|
||||
fi
|
||||
if patch "${_ptd[@]}" -Nup1 -i "${srcdir}/${_pt}"; then
|
||||
_pts+=("${_pt}")
|
||||
else
|
||||
_ptf+=("${_pt}")
|
||||
fi
|
||||
done
|
||||
if [ "${#_ptf[@]}" -gt 0 ]; then
|
||||
if [ "${#_pts[@]}" -gt 0 ]; then
|
||||
printf 'Patch success %s\n' "${_pts[@]}"
|
||||
printf 'Warning: Some old patches may need to be removed even if they are successful\n'
|
||||
fi
|
||||
printf 'Patch failed %s\n' "${_ptf[@]}"
|
||||
set +x
|
||||
false
|
||||
fi
|
||||
#cd '..'; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; cp -pr "${_srcdirfrb}" 'fa'; ln -s "${_srcdirfrb}" 'fb'; false
|
||||
#cd '..'; cp -pr "${_srcdirvc}" 'va'; ln -s "${_srcdirvc}" 'vb'; false
|
||||
#diff -pNaru5 'a' 'b' > "0000-$RANDOM@domain.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
local -
|
||||
msg2 'Build vcpkg'
|
||||
set -u
|
||||
unset VCPKG_DOWNLOADS
|
||||
if [ ! -x "${_srcdirvc}/vcpkg" ]; then
|
||||
"${_srcdirvc}/bootstrap-vcpkg.sh" -disableMetrics
|
||||
fi
|
||||
export VCPKG_ROOT="${PWD}/${_srcdirvc}"
|
||||
local _vcextra=(
|
||||
--disable-metrics
|
||||
--cmake-args='-DVCPKG_BUILD_TYPE=release' # https://github.com/microsoft/vcpkg/issues/37186#issuecomment-2133951797
|
||||
--cmake-args='-DVCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES=enabled'
|
||||
#--no-downloads
|
||||
#--only-downloads
|
||||
)
|
||||
#export CMAKE_POLICY_VERSION_MINIMUM='3.5'
|
||||
${_opt_NICE} "${_srcdirvc}/vcpkg" install "${_vcextra[@]}" --x-install-root="${VCPKG_ROOT}/installed" "${_vcpkg[@]}" "${_opt_hwcodec_vc[@]}"
|
||||
|
||||
cd "${_srcdir}"
|
||||
set +u; msg2 'Build rustdesk Flutter'; set -u
|
||||
set -x
|
||||
export CPATH="$(clang -v 2>&1 | grep "Selected GCC installation: " | cut -d' ' -f4-)/include"
|
||||
export CARGO_INCREMENTAL=0
|
||||
local _FVC _FBIN; _fn_setvars
|
||||
export PATH="${_FBIN}:${srcdir}/flutter/bin:${PATH}"
|
||||
flutter --disable-analytics
|
||||
dart --disable-analytics
|
||||
flutter doctor
|
||||
dart pub global activate ffigen --version 5.0.1
|
||||
pushd "${srcdir}/flutter_rust_bridge/frb_codegen"; ${_opt_NICE} cargo install --path . ; popd
|
||||
pushd flutter ; flutter clean; flutter pub get ; popd
|
||||
local _CGdefault=~/.cargo
|
||||
local _CARGO_HOME_RUSTDESK="${CARGO_HOME:-${_CGdefault}}"
|
||||
"${_CARGO_HOME_RUSTDESK}"/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
|
||||
if :; then
|
||||
find "${_CARGO_HOME_RUSTDESK}/git" -type 'f' -name 'mkvparser.cc' -execdir sh -c "patch --no-backup-if-mismatch -Nup0 -i \"${srcdir}/0003-mkvparser.cc-cstdint.patch\"; rm -f mkvparser.cc.rej; true" ';'
|
||||
fi
|
||||
if [ "${_opt_BUILD_PY}" -ne 0 ]; then
|
||||
${_opt_NICE} ./build.py --flutter "${_opt_hwcodec_py[@]}"
|
||||
else
|
||||
#git checkout src/ui/common.tis
|
||||
${_opt_NICE} cargo build --features flutter${_opt_hwcodec_fe} --lib --release
|
||||
pushd flutter
|
||||
${_opt_NICE} flutter build linux --release
|
||||
popd
|
||||
fi
|
||||
set +x
|
||||
}
|
||||
|
||||
# This rebuilds the entire package
|
||||
check_disabled() {
|
||||
cd "${_srcdir}"
|
||||
${_opt_NICE} cargo test --release
|
||||
}
|
||||
|
||||
package() {
|
||||
local -
|
||||
set -u
|
||||
cd "${_srcdir}"
|
||||
|
||||
install -d "${pkgdir}/usr/lib/"
|
||||
cp -pr 'flutter/build/linux/x64/release/bundle' "${pkgdir}/usr/lib/"
|
||||
mv "${pkgdir}/usr/lib/"{bundle,${_pkgname}}
|
||||
install -d "${pkgdir}/usr/bin/"
|
||||
ln -s -t "${pkgdir}/usr/bin/" "/usr/lib/${_pkgname}/${_pkgname}"
|
||||
|
||||
install -Dm0644 "res/${_pkgname}.service" -t "${pkgdir}/usr/lib/systemd/system/"
|
||||
|
||||
install -Dm0644 'res/32x32.png' "${pkgdir}/usr/share/icons/hicolor/32x32/apps/${_pkgname}.png"
|
||||
install -Dm0644 'res/128x128.png' "${pkgdir}/usr/share/icons/hicolor/128x128/apps/${_pkgname}.png"
|
||||
install -Dm0644 'res/128x128@2x.png' "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${_pkgname}.png"
|
||||
|
||||
install -Dm0644 /dev/stdin "${pkgdir}/usr/share/applications/${_pkgname}.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Version=${pkgver%.r*}
|
||||
Name=RustDesk
|
||||
GenericName=Remote Desktop
|
||||
GenericName[zh_CN]=远程桌面
|
||||
Comment=Remote Desktop
|
||||
Comment[zh_CN]=远程桌面
|
||||
Exec=${_pkgname} %u
|
||||
Icon=${_pkgname}
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
StartupNotify=true
|
||||
Categories=Network;RemoteAccess;GTK;
|
||||
Keywords=internet;
|
||||
Actions=new-window;
|
||||
|
||||
X-Desktop-File-Install-Version=0.23
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
EOF
|
||||
install -Dm644 'LICENCE' -t "${pkgdir}/usr/share/licenses/${_pkgname}"
|
||||
}
|
||||
set +u
|
||||
15
rustdesk/rustdesk.install
Normal file
15
rustdesk/rustdesk.install
Normal file
@ -0,0 +1,15 @@
|
||||
# arg 1: the new package version
|
||||
post_install() {
|
||||
if systemctl -q is-enabled 'rustdesk.service'; then
|
||||
systemctl daemon-reload
|
||||
systemctl restart 'rustdesk.service'
|
||||
fi
|
||||
}
|
||||
|
||||
# arg 1: the new package version
|
||||
# arg 2: the old package version
|
||||
post_upgrade() {
|
||||
if systemctl -q is-enabled 'rustdesk.service'; then
|
||||
systemctl restart 'rustdesk.service'
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user