Skip to content

Commit

Permalink
X11: Support touch input
Browse files Browse the repository at this point in the history
  • Loading branch information
dragonflylee committed Sep 12, 2024
1 parent 361bf97 commit 5b1998b
Show file tree
Hide file tree
Showing 12 changed files with 585 additions and 151 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,16 @@ jobs:
strategy:
fail-fast: false
matrix:
release: [ switchroot-bionic, ubuntu-focal, kylin-v10 ]
release: [ switchroot-bionic, kylin-v10, ubuntu-focal, debian-bookworm ]
runs-on: ubuntu-latest
if: ${{ inputs.deb }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up QEMU
if: ${{ matrix.release != 'ubuntu-focal' }}
if: ${{ matrix.release == 'switchroot-bionic' || matrix.release == 'kylin-v10' }}
uses: docker/setup-qemu-action@v3
- name: Download deps
run: curl -sSL https:/dragonflylee/switchfin/releases/download/switch-portlibs/${{ matrix.release }}.tar.gz | tar zxf -
- name: Build deb
run: docker run --rm -u $(id -u):$(id -g) -v $PWD:/opt -w /opt -e VERSION_BUILD=${{ github.run_number }} dragonflylee/build:${{ matrix.release }} bash scripts/deb/${{ matrix.release }}/build.sh
- name: Set outputs
Expand Down
37 changes: 0 additions & 37 deletions .github/workflows/ubuntu-deps.yaml

This file was deleted.

19 changes: 19 additions & 0 deletions scripts/deb/debian-bookworm/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# docker build --network host -t build:debian-bookworm .

FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y gnupg wget \
&& wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/kitware.gpg \
&& echo > /etc/apt/sources.list.d/kitware.list "deb https://apt.kitware.com/ubuntu/ jammy main" \
&& apt-get update && apt-get install -y --no-install-recommends g++ nasm make patch cmake sudo git xz-utils meson manpages- \
&& apt-get remove -y gnupg && apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* /usr/share/man/*

RUN apt-get update && apt-get install -y --no-install-recommends libwayland-dev libxkbcommon-dev xorg-dev libdbus-1-dev libssl-dev \
libass-dev libwebp-dev libv4l-dev libpulse-dev libuchardet-dev libva-dev libvdpau-dev libxxhash-dev \
&& rm -rf /var/lib/apt/lists/* /usr/share/man/* /usr/src/tensorrt/*

RUN adduser --gecos '' --disabled-password debian \
&& echo 'debian ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/debian

USER debian
25 changes: 21 additions & 4 deletions scripts/deb/ubuntu-focal/deps.sh → scripts/deb/debian-bookworm/build.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

set -e

: "${VERSION_BUILD:="0"}"
: "${CMAKE_PREFIX_PATH:="/opt/switchfin"}"
export PKG_CONFIG_PATH=$CMAKE_PREFIX_PATH/lib/pkgconfig
export LD_LIBRARY_PATH=$CMAKE_PREFIX_PATH/lib
Expand All @@ -23,7 +24,7 @@ cmake --install build --strip

cd /tmp/dav1d-1.4.3
meson setup build --prefix=$CMAKE_PREFIX_PATH --libdir=lib --buildtype=release --default-library=shared \
-Denable_tools=false -Denable_examples=false -Denable_tests=false -Denable_docs=false
-Ddebug=false -Denable_tools=false -Denable_examples=false -Denable_tests=false -Denable_docs=false
meson compile -C build
meson install -C build

Expand All @@ -33,16 +34,18 @@ cd /tmp/ffmpeg-7.0.2
./configure --prefix=$CMAKE_PREFIX_PATH --enable-shared --disable-static \
--ld=g++ --enable-nonfree --enable-openssl --enable-libv4l2 \
--enable-opengl --enable-libass --disable-doc --enable-asm --enable-rpath \
--disable-muxers --disable-demuxers --enable-demuxer=mov,flv,dash,hls \
--disable-encoders --disable-decoders --enable-decoder=aac,h264,hevc,libdav1d \
--disable-protocols --enable-protocol=file,http,tcp,udp,hls,https,tls,httpproxy \
--disable-filters --enable-filter=hflip,vflip,transpose --disable-avdevice \
--disable-muxers --disable-encoders --disable-programs --disable-debug
--disable-programs --disable-debug
make -j$(nproc)
make install

cd /tmp/mpv-0.36.0
patch -Nbp1 -i /opt/scripts/mingw64/mpv/0002-lavfi-channel-layout.patch
meson setup build --prefix=$CMAKE_PREFIX_PATH --libdir=lib --buildtype=release --default-library=shared \
-Dlibmpv=true -Dcplayer=false -Dtests=false -Dlibarchive=disabled -Dlua=disabled
-Dlibmpv=true -Dcplayer=false -Dtests=false -Ddebug=false -Dlibarchive=disabled -Dlua=disabled
meson compile -C build
meson install -C build

Expand All @@ -51,4 +54,18 @@ cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_WAYLAND=OFF \
-DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF
cmake --build build
cmake --install build --strip
cmake --install build --strip

cd /opt
mkdir -p /tmp/deb/DEBIAN /tmp/deb/usr /tmp/deb/opt/switchfin/lib
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DPLATFORM_DESKTOP=ON -DUSE_SYSTEM_GLFW=ON -DCMAKE_INSTALL=ON -DVERSION_BUILD=$VERSION_BUILD \
-DCUSTOM_RESOURCES_DIR=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib
cmake --build build -j$(nproc)
DESTDIR="/tmp/deb" cmake --install build --strip

cp -d /opt/switchfin/lib/*.so.* /tmp/deb/opt/switchfin/lib
mv /tmp/deb/opt/switchfin/share /tmp/deb/usr
sed -i 's|Exec=Switchfin|Exec=/opt/switchfin/bin/Switchfin|' /tmp/deb/usr/share/applications/org.player.switchfin.desktop
cp scripts/deb/ubuntu-focal/control /tmp/deb/DEBIAN
dpkg --build /tmp/deb Switchfin-Linux-debian-bookworm-$(uname -m).deb
20 changes: 20 additions & 0 deletions scripts/deb/debian-bookworm/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Section: video
Priority: optional
Maintainer: dragonflylee <[email protected]>
Version: 0.5.2-1
Vcs-Git: https:/dragonflylee/switchfin.git
Package: switchfin
Architecture: amd64
Depends: libdbus-1-3,
libass9,
libpulse0,
libssl3,
libuchardet0,
libv4l-0,
libva-drm2,
libva-glx2,
libvdpau1,
libwebp7,
libx11-6
Recommends: va-driver-all
Description: Third-party native Jellyfin client for Nintendo Switch
50 changes: 49 additions & 1 deletion scripts/deb/kylin-v10/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,56 @@ set -e
export PKG_CONFIG_PATH=$CMAKE_PREFIX_PATH/lib/pkgconfig
export LD_LIBRARY_PATH=$CMAKE_PREFIX_PATH/lib

mkdir -p /tmp/deb/DEBIAN /tmp/deb/usr /tmp/deb/opt/switchfin/lib
wget -qO- https://curl.se/download/curl-8.7.1.tar.xz | tar Jxf - -C /tmp
wget -qO- https://ffmpeg.org/releases/ffmpeg-7.0.2.tar.xz | tar Jxf - -C /tmp
wget -qO- https:/mpv-player/mpv/archive/v0.36.0.tar.gz | tar zxf - -C /tmp
wget -qO- https:/webmproject/libwebp/archive/v1.4.0.tar.gz | tar zxf - -C /tmp
git clone https:/dragonflylee/glfw.git -b switchfin --depth=1 /tmp/glfw

cd /tmp/curl-8.7.1
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DCURL_USE_OPENSSL=ON \
-DHTTP_ONLY=ON -DCURL_DISABLE_PROGRESS_METER=ON -DBUILD_CURL_EXE=OFF -DBUILD_TESTING=OFF \
-DUSE_LIBIDN2=OFF -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBPSL=OFF -DBUILD_LIBCURL_DOCS=OFF
cmake --build build -j$(nproc)
cmake --install build --strip

cd /tmp/ffmpeg-7.0.2
./configure --prefix=$CMAKE_PREFIX_PATH --enable-shared --disable-static \
--ld=g++ --enable-nonfree --enable-openssl --enable-libv4l2 \
--enable-opengl --enable-libass --disable-doc --enable-asm --enable-rpath \
--disable-protocols --enable-protocol=file,http,tcp,udp,hls,https,tls,httpproxy \
--disable-filters --enable-filter=hflip,vflip,transpose --disable-avdevice \
--disable-muxers --disable-encoders --disable-programs --disable-debug
make -j$(nproc)
make install

cd /tmp/mpv-0.36.0
patch -Nbp1 -i /opt/scripts/mingw64/mpv/0002-lavfi-channel-layout.patch
./bootstrap.py
LIBDIR=$CMAKE_PREFIX_PATH/lib RPATH=$CMAKE_PREFIX_PATH/lib ./waf configure --prefix=$CMAKE_PREFIX_PATH \
--disable-libmpv-static --enable-libmpv-shared --disable-debug-build --disable-libavdevice \
--disable-cplayer --disable-libarchive --disable-lua
./waf install

cd /tmp/libwebp-1.4.0
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DWEBP_BUILD_EXTRAS=OFF \
-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF \
-DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF -DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF \
-DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_LIBWEBPMUX=OFF
cmake --build build -j$(nproc)
cmake --install build --strip

cd /tmp/glfw
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_WAYLAND=OFF \
-DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF
cmake --build build -j$(nproc)
cmake --install build --strip

cd /opt
mkdir -p /tmp/deb/DEBIAN /tmp/deb/usr /tmp/deb/opt/switchfin/lib
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DPLATFORM_DESKTOP=ON -DUSE_SYSTEM_GLFW=ON -DCMAKE_INSTALL=ON -DVERSION_BUILD=$VERSION_BUILD \
-DCUSTOM_RESOURCES_DIR=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib
Expand Down
55 changes: 0 additions & 55 deletions scripts/deb/kylin-v10/deps.sh

This file was deleted.

43 changes: 42 additions & 1 deletion scripts/deb/switchroot-bionic/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,49 @@ set -e
export PKG_CONFIG_PATH=$CMAKE_PREFIX_PATH/lib/pkgconfig
export LD_LIBRARY_PATH=$CMAKE_PREFIX_PATH/lib:/usr/lib/aarch64-linux-gnu/tegra

mkdir -p /tmp/deb/DEBIAN /tmp/deb/usr /tmp/deb/opt/switchfin/lib
wget -qO- https://curl.se/download/curl-8.7.1.tar.xz | tar Jxf - -C /tmp
git clone https://gitlab.com/switchroot/switch-l4t-multimedia/FFmpeg.git --depth=1 /tmp/ffmpeg
git clone https://gitlab.com/switchroot/switch-l4t-multimedia/mpv.git --depth=1 /tmp/mpv
git clone https:/dragonflylee/glfw.git -b switchfin --depth=1 /tmp/glfw

cd /tmp/curl-8.7.1
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DCURL_USE_OPENSSL=ON \
-DHTTP_ONLY=ON -DCURL_DISABLE_PROGRESS_METER=ON -DBUILD_CURL_EXE=OFF -DBUILD_TESTING=OFF \
-DUSE_LIBIDN2=OFF -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBPSL=OFF -DBUILD_LIBCURL_DOCS=OFF
cmake --build build
cmake --install build --strip

cd /tmp/ffmpeg
./configure --prefix=$CMAKE_PREFIX_PATH --enable-shared --disable-static \
--extra-cflags='-march=armv8-a+simd+crypto+crc -mtune=cortex-a57 -I/usr/src/jetson_multimedia_api/include' \
--extra-ldflags='-L/usr/lib/aarch64-linux-gnu/tegra' \
--extra-libs='-lpthread -lm -lnvbuf_utils -lv4l2' \
--ld=g++ --enable-nonfree --enable-openssl --enable-libv4l2 --enable-nvv4l2 \
--enable-opengl --disable-doc --enable-asm --enable-neon --disable-debug \
--enable-libass --enable-demuxer=hls --disable-muxers --disable-avdevice \
--disable-protocols --enable-protocol=file,http,tcp,udp,hls,https,tls,httpproxy \
--disable-filters --enable-filter=hflip,vflip,transpose \
--disable-encoders --disable-programs --enable-rpath
make -j$(nproc)
make install

cd /tmp/mpv
./bootstrap.py
LIBDIR=$CMAKE_PREFIX_PATH/lib RPATH=$CMAKE_PREFIX_PATH/lib ./waf configure --prefix=$CMAKE_PREFIX_PATH \
--disable-libmpv-static --enable-libmpv-shared --disable-debug-build --disable-libavdevice \
--disable-cplayer --disable-libarchive --disable-lua
./waf install

cd /tmp/glfw
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_WAYLAND=OFF \
-DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF
cmake --build build
cmake --install build --strip

cd /opt
mkdir -p /tmp/deb/DEBIAN /tmp/deb/usr /tmp/deb/opt/switchfin/lib
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$CMAKE_PREFIX_PATH \
-DPLATFORM_DESKTOP=ON -DUSE_SYSTEM_GLFW=ON -DCMAKE_INSTALL=ON -DVERSION_BUILD=$VERSION_BUILD \
-DCUSTOM_RESOURCES_DIR=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_RPATH=$CMAKE_PREFIX_PATH/lib
Expand Down
48 changes: 0 additions & 48 deletions scripts/deb/switchroot-bionic/deps.sh

This file was deleted.

Loading

0 comments on commit 5b1998b

Please sign in to comment.