ubuntuusers.de

[Bash alias] SMPlayer mit Qt6 Framework selbst bauen - install mit porg

Status: Ungelöst | Ubuntu-Version: Kubuntu 26.10 (Stonking Stingray)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6429

Der SMPlayer ist zwar als DEB-Fertigpaket (universe) verfügbar, aber mit einem veralteten Qt Framwork, was mir die grafische Oberfläche viel zu hässlich macht. Daher selbst bauen aus dem Git SMPlayer Qt6 Zweig.

alias smplayerneu='INSTALLATIONSDISK=$HOME/Installationsdisk && \
                        KDEDIR=$INSTALLATIONSDISK/KDE && \
                        SMPLAYER_BASE=$KDEDIR/Smplayer_Base && \
                        SMPLAYER_SRC=$SMPLAYER_BASE/smplayer && \
                        APP_NAME=SMPlayer && \
                        TMPFS_SIZE=0 && \
                        ID=$(id --user) && \
                        OLD_DAYS=7 && \
                        sudo apt install \
                        qt6-base-dev \
                        qt6-base-dev-tools \
                        qt6-base-private-dev \
                        qt6-declarative-dev \
                        qt6-declarative-dev-tools \
                        qt6-tools-dev \
                        qt6-tools-dev-tools \
                        libqt6opengl6-dev && \
                        echo "apt-get OK" || echo "apt-get Error" && \
                        [ ! -d $INSTALLATIONSDISK ] && mkdir -pv $INSTALLATIONSDISK || echo "$INSTALLATIONSDISK exists" && \
                        [ ! -d $KDEDIR ] && mkdir -pv $KDEDIR || echo "$KDEDIR exists" && \
                        [ ! -d $SMPLAYER_BASE ] && mkdir -pv $SMPLAYER_BASE || echo "$SMPLAYER_BASE exists" && \
                        [ -d $SMPLAYER_SRC ] && yes | rm -rf $SMPLAYER_SRC  && \
                        echo "Builddir removed, OK" || echo "No need remove Builddir, OK." && \
                        [ ! -d $SMPLAYER_SRC ] && mkdir -pv $SMPLAYER_SRC || echo "Builddir exists. Ok." && \
                        sudo mount -v tmpfs $SMPLAYER_SRC -t tmpfs -o mode=777,size=$TMPFS_SIZE,uid=$ID && \
                        [ ! -d $SMPLAYER_SRC/.git ] && git clone https://github.com/smplayer-dev/smplayer.git --branch qt6 --single-branch $SMPLAYER_SRC && \
                        printf "\n \033[45m\033[1;36m==> $APP_NAME Sourcecode cloned. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" || \
                        printf "\n \033[45m\033[1;36m==> $APP_NAME Sourcecode found. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                        printf "\n \033[45m\033[1;36m==> Update $APP_NAME Sourcecode. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                        git -C  $SMPLAYER_SRC pull && \
                        echo "git pull done." || echo "No git pull." && \
                        printf "\n \033[45m\033[1;36m==> Config $APP_NAME. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                        cd $SMPLAYER_SRC && \
                        $SMPLAYER_SRC/get_version.sh && \
                        qmake6 PREFIX=/usr $SMPLAYER_SRC/src/ -o $SMPLAYER_SRC/src/build/Makefile && \
                        printf "\n \033[45m\033[1;36m==> Compile $APP_NAME. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                        time make  -j $(nproc --all) PREFIX=/usr -C $SMPLAYER_SRC/src/build/ ADDFLAGS=-march=native STRIP=true \
                        OPTFLAGS="-O3 -ftree-loop-vectorize -pie -aslr -flto=`nproc --all` \
                        -arch=sm_52 -gencode=arch=compute_52,code=sm_52" && \
                        printf "\n \033[45m\033[1;36m==> Install $APP_NAME. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                        sudo porg -lp smplayer "install -v -m 755 -p $SMPLAYER_SRC/src/build/smplayer $PREFIX/bin/ && \
                        strip --strip-unneeded $PREFIX/bin/smplayer" && \
                        sudo porg -lp+ smplayer "XDG_UTILS_DEBUG_LEVEL=1 xdg-desktop-menu install $SMPLAYER_SRC/smplayer.desktop --mode system --novendor" && \
                        sudo porg -lp+ smplayer "install -v -m 644 -p $SMPLAYER_SRC/icons/smplayer.svg $PREFIX/share/icons/hicolor/scalable/apps" && \
                        [ $XDG_SESSION_DESKTOP = KDE ] && \
                        echo "KDE Desktop found." && kbuildsycoca5 --noincremental && kbuildsycoca6 --noincremental || \
                        echo "No KDE Desktop found." && \
                        sudo update-desktop-database 2> /dev/null && \
                        printf "\n \033[45m\033[1;36m==> Install $APP_NAME successful. \033[0m\033[42m\033[1;36m  ==> Done.\033[0m \n \n" && \
                        printf "\n \033[45m\033[1;36m==> $APP_NAME deinstall: \033[0m\033[43m\033[1;36m sudo porg -rv smplayer  <== \033[0m \n \n" || \
                        printf "\n \033[41m\033[1;36m==> Install $APP_NAME failed.\033[0m \n \n" | tee -a $HOME/buildfail.log ; \
                        cd $HOME ; \
                        sudo umount -fv $SMPLAYER_SRC ; \
                        [ -d $SMPLAYER_SRC ] && yes | sudo rm -rf $SMPLAYER_SRC && echo "Builddir cleaned." || echo "Builddir was clean." ; \
                        cd $HOME'

Für die Installation wird porg verwendet. Im SMPlayer PPA gibt es noch nichts für Stonking Stingray.

Der SMPlayer nutzt MPV als Engine, bietet aber zusätzlichen Komfort. Unter anderem auch die Möglichkeit, Untertitel von OpenSubtitles zu beziehen. Auf meinem KDE mit Breeze-Theme harmoniert am besten im SMPlayer die Mini Gui mit Classic Icon Set in Verbindung mit Breeze. Wählt man was anderes, gibt es die optisch etwas aufdringliche Fusion-Theme Leiste unten im Player.

Antworten |