From 240daf4bb746bdb3d670cd7f8b4b540a213f321d Mon Sep 17 00:00:00 2001 From: madomado Date: Sun, 29 Oct 2023 18:09:17 +0800 Subject: [PATCH] add patches for rustdesk --- anda/others/rustdesk/pam-deps.diff | 13 ++++ anda/others/rustdesk/pam-sys-build.patch | 23 +++++++ anda/others/rustdesk/rustdesk-deps.diff | 13 ++++ anda/others/rustdesk/rustdesk.spec | 81 +++++++++++++++--------- anda/others/rustdesk/update.rhai | 1 + 5 files changed, 100 insertions(+), 31 deletions(-) create mode 100644 anda/others/rustdesk/pam-deps.diff create mode 100644 anda/others/rustdesk/pam-sys-build.patch create mode 100644 anda/others/rustdesk/rustdesk-deps.diff create mode 100644 anda/others/rustdesk/update.rhai diff --git a/anda/others/rustdesk/pam-deps.diff b/anda/others/rustdesk/pam-deps.diff new file mode 100644 index 0000000000..5c95cad3be --- /dev/null +++ b/anda/others/rustdesk/pam-deps.diff @@ -0,0 +1,13 @@ +diff --git a/Cargo.toml b/Cargo.toml +index be7e2aef..1f0c1eac 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -17,7 +17,7 @@ travis-ci = { repository = "1wilkens/pam" } + + [dependencies] + libc = "^0.2" +-pam-sys = "^0.5" ++pam-sys = { version = "1.0.0-alpha4", path = "./pam-sys" } + users = "^0.8" + + [dev-dependencies] diff --git a/anda/others/rustdesk/pam-sys-build.patch b/anda/others/rustdesk/pam-sys-build.patch new file mode 100644 index 0000000000..70498f7f76 --- /dev/null +++ b/anda/others/rustdesk/pam-sys-build.patch @@ -0,0 +1,23 @@ +From df8080b8b813f33963e8a169f157bff1607d54f4 Mon Sep 17 00:00:00 2001 +From: David Johnson +Date: Tue, 5 Sep 2023 10:29:20 -0700 +Subject: [PATCH] Added __gnuc_va_list to the list of blocked types since this + type exists on at least some Linux platforms, and prevents pam-sys from + compiling without this exclusion. + +--- + build.rs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.rs b/build.rs +index 7ac5cf3..cf44cde 100644 +--- a/build.rs ++++ b/build.rs +@@ -29,6 +29,7 @@ fn main() { + .blocklist_type("va_list") + .blocklist_type("__va_list") + .blocklist_type("__builtin_va_list") ++ .blocklist_type("__gnuc_va_list") + .blocklist_type("__va_list_tag") + .blocklist_function("pam_v.*") + .blocklist_function("pam_syslog") diff --git a/anda/others/rustdesk/rustdesk-deps.diff b/anda/others/rustdesk/rustdesk-deps.diff new file mode 100644 index 0000000000..48290285d8 --- /dev/null +++ b/anda/others/rustdesk/rustdesk-deps.diff @@ -0,0 +1,13 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 9e8224fc..8fbbe54c 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -127,7 +127,7 @@ mouce = { git="https://github.com/fufesou/mouce.git" } + evdev = { git="https://github.com/fufesou/evdev" } + dbus = "0.9" + dbus-crossroads = "0.5" +-pam = { git="https://github.com/fufesou/pam", optional = true } ++pam = { path = "./pam", optional = true } + users = { version = "0.11" } + + [target.'cfg(target_os = "android")'.dependencies] diff --git a/anda/others/rustdesk/rustdesk.spec b/anda/others/rustdesk/rustdesk.spec index 9ae6539b8b..454829c22b 100644 --- a/anda/others/rustdesk/rustdesk.spec +++ b/anda/others/rustdesk/rustdesk.spec @@ -1,3 +1,8 @@ +%global pamsys_ver v1.0.0-alpha4 +%global pamsys 1.0.0-alpha4 +%global pam_ver v0.7.0 +%global pam 0.7.0 + %ifarch x86_64 %global scarch x64 %else @@ -11,15 +16,20 @@ Version: 1.2.3 Release: 1%{?dist} Summary: An open-source remote desktop, and alternative to TeamViewer. -Group: System Environment/Base +Group: System Environment/Base License: GPLv2+ URL: http://rustdesk.com Source0: https://github.com/rustdesk/rustdesk/archive/refs/tags/%{version}.tar.gz Source1: https://github.com/c-smile/sciter-sdk/raw/master/bin.lnx/%{scarch}/libsciter-gtk.so +Source2: https://github.com/1wilkens/pam/archive/refs/tags/%{pam_ver}.tar.gz +Source3: https://github.com/1wilkens/pam-sys/archive/refs/tags/%{pamsys_ver}.tar.gz +Patch0: pam-deps.diff +Patch1: pam-sys-build.patch +Patch2: rustdesk-deps.diff -BuildRequires: rustc cargo anda-srpm-macros gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel +BuildRequires: rust-packaging anda-srpm-macros gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel BuildRequires: gstreamer1-devel rust-gstreamer-devel pkgconfig(gstreamer-app-1.0) -BuildRequires: libvpx-devel opus-devel libyuv-devel libaom-devel git-core pam-devel +BuildRequires: libvpx-devel opus-devel libyuv-devel libaom-devel pam-devel Requires: gtk3 libxcb libxdo libXfixes alsa-lib libappindicator libvdpau1 libva2 pam gstreamer1-plugins-base @@ -28,45 +38,54 @@ Requires: gtk3 libxcb libxdo libXfixes alsa-lib libappindicator libvdpau1 libv The best open-source remote desktop client software, written in Rust. %prep -%autosetup -n rustdesk-%{version} +%setup -q -n rustdesk-%version +%patch 2 -p1 +tar xf %SOURCE2 +mv pam-%pam pam +cd pam +git apply %PATCH0 +tar xf %SOURCE3 +mv pam-sys-%pamsys pam-sys +cd pam-sys +git apply %PATCH1 +cd ../.. +%cargo_prep_online %build -cargo build -F linux-pkg-config --release +%cargo_build -f linux-pkg-config %global __python %{__python3} %install -mkdir -p %{buildroot}/usr/bin/ -mkdir -p %{buildroot}/usr/lib/rustdesk/ -mkdir -p %{buildroot}/usr/share/rustdesk/files/ -mkdir -p %{buildroot}/usr/share/icons/hicolor/256x256/apps/ -mkdir -p %{buildroot}/usr/share/icons/hicolor/scalable/apps/ -install -m 755 target/release/rustdesk %{buildroot}/usr/bin/rustdesk -install %{SOURCE1} %{buildroot}/usr/lib/rustdesk/libsciter-gtk.so -install res/rustdesk.service %{buildroot}/usr/share/rustdesk/files/ -install res/128x128@2x.png %{buildroot}/usr/share/icons/hicolor/256x256/apps/rustdesk.png -install res/scalable.svg %{buildroot}/usr/share/icons/hicolor/scalable/apps/rustdesk.svg -install res/rustdesk.desktop %{buildroot}/usr/share/rustdesk/files/ -install res/rustdesk-link.desktop %{buildroot}/usr/share/rustdesk/files/ -install -d %{buildroot}/usr/share/applications/ -install res/rustdesk.desktop %{buildroot}/usr/share/applications/ -install res/rustdesk-link.desktop %{buildroot}/usr/share/applications/ -install -d %{buildroot}/etc/systemd/system/ -install res/rustdesk.service %{buildroot}/etc/systemd/system/rustdesk.service +%cargo_install -f linux-pkg-config +mkdir -p %buildroot/usr/lib/rustdesk/ +mkdir -p %buildroot%_datadir/rustdesk/files/ +mkdir -p %buildroot%_datadir/icons/hicolor/{256x256,scalable}/apps/ +install %SOURCE1 %buildroot/usr/lib/rustdesk/libsciter-gtk.so +install res/rustdesk.service %buildroot%_datadir/rustdesk/files/ +install res/128x128@2x.png %buildroot%_datadir/icons/hicolor/256x256/apps/rustdesk.png +install res/scalable.svg %buildroot%_datadir/icons/hicolor/scalable/apps/rustdesk.svg +install res/rustdesk.desktop %buildroot%_datadir/rustdesk/files/ +install res/rustdesk-link.desktop %buildroot%_datadir/rustdesk/files/ +install -d %buildroot%_datadir/applications/ +install res/rustdesk.desktop %buildroot%_datadir/applications/ +install res/rustdesk-link.desktop %buildroot%_datadir/applications/ +install -d %buildroot%_unitdir +install res/rustdesk.service %buildroot%_unitdir/rustdesk.service %files -/usr/bin/rustdesk +%_bindir/rustdesk /usr/lib/rustdesk/libsciter-gtk.so -/usr/share/rustdesk/files/rustdesk.service -/usr/share/icons/hicolor/256x256/apps/rustdesk.png -/usr/share/icons/hicolor/scalable/apps/rustdesk.svg -/usr/share/rustdesk/files/rustdesk.desktop -/usr/share/rustdesk/files/rustdesk-link.desktop +%_datadir/rustdesk/files/rustdesk.service +%_datadir/icons/hicolor/256x256/apps/rustdesk.png +%_datadir/icons/hicolor/scalable/apps/rustdesk.svg +%_datadir/rustdesk/files/rustdesk.desktop +%_datadir/rustdesk/files/rustdesk-link.desktop -/usr/share/applications/rustdesk.desktop -/usr/share/applications/rustdesk-link.desktop -/etc/systemd/system/rustdesk.service +%_datadir/applications/rustdesk.desktop +%_datadir/applications/rustdesk-link.desktop +%_unitdir/rustdesk.service %pre diff --git a/anda/others/rustdesk/update.rhai b/anda/others/rustdesk/update.rhai new file mode 100644 index 0000000000..245dfee954 --- /dev/null +++ b/anda/others/rustdesk/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("rustdesk/rustdesk"));