Skip to content

Instantly share code, notes, and snippets.

@koter84
Last active July 5, 2018 07:25
Show Gist options
  • Save koter84/2f81b0768fe2452be1b869da1ccfbc21 to your computer and use it in GitHub Desktop.
Save koter84/2f81b0768fe2452be1b869da1ccfbc21 to your computer and use it in GitHub Desktop.
update remmina from git
#!/bin/bash
##### UNINSTALL #####
if [ -f /etc/ld.so.conf.d/freerdp_devel.conf ]
then
read -p "uninstall git-version ? [y/N] " do_uninstall
if [ "$do_uninstall" == "Y" ] || [ "$do_uninstall" == "y" ]
then
echo "do-uninstall!"
rm -rf /opt/remmina_build/
sudo rm -rf /opt/remmina/
sudo rm /etc/ld.so.conf.d/freerdp_devel.conf /usr/local/bin/remmina /usr/local/bin/xfreerdp
sudo ldconfig
read -p "continue with new build ? [Y/n] " do_build
if [ "$do_build" == "N" ] || [ "$do_build" == "n" ]
then
exit
fi
fi
fi
# create build-dir
if [ -d /opt/remmina_build ]; then
read -p "clean build-dir ? [y/N] " do_remove
if [ "$do_remove" == "Y" ] || [ "$do_remove" == "y" ]; then
rm -rf /opt/remmina_build
fi
fi
mkdir -p /opt/remmina_build
read -p "test freerdp with connection to jody ? [y/N] " do_test
if [ "$do_test" == "Y" ] || [ "$do_test" == "y" ];
then
freerdp_test="1"
fi
# remove current installed packages for remmina and freerdp
#sudo rpm -e remmina remmina-devel remmina-plugins-gnome remmina-plugins-nx remmina-plugins-rdp remmina-plugins-telepathy remmina-plugins-vnc remmina-plugins-xdmcp
sudo dnf remove remmina remmina-* freerdp freerdp-devel freerdp-libs
# packages needed for freerdp
#sudo dnf install gcc gcc-c++ cmake openssl-devel libX11-devel libXext-devel \
# libXinerama-devel libXcursor-devel \
# libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel glib2-devel \
# pulseaudio-libs-devel git libssh-devel libXi-devel libXtst-devel xmlto gstreamer1-devel \
# libXrandr-devel gstreamer1-plugins-base-devel json-glib-devel
# packages needed for remmina
#sudo dnf install gtk3-devel libgcrypt-devel libssh-devel libxkbfile-devel openjpeg2-devel \
# gnutls-devel libgnome-keyring-devel avahi-ui-devel avahi-ui-gtk3 \
# libvncserver-devel vte3-devel libappindicator-devel libappindicator-gtk3 libappindicator-gtk3-devel \
# telepathy-glib-devel libSM-devel webkitgtk4-devel libsecret-devel
# clone freerdp
cd /opt/remmina_build
if [ ! -d FreeRDP ]; then
git clone https://github.com/FreeRDP/FreeRDP.git -b master
FORCE="1"
fi
cd FreeRDP
git remote update
if [ "$(git rev-parse HEAD)" == "$(git rev-parse @{u})${FORCE}" ]
then
echo "> no need to rebuild FreeRDP"
else
echo "> er zijn bestanden gewijzigd"
git pull
# configure, build and install freerdp
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_PULSE=ON -DWITH_CUPS=on -DWITH_WAYLAND=off -DCMAKE_INSTALL_PREFIX:PATH=/opt/remmina/freerdp .
make && sudo make install
# link xfreerdp to $PATH
if [ -f /usr/local/bin/xfreerdp ]; then
sudo rm /usr/local/bin/xfreerdp
fi
sudo ln -s /opt/remmina/freerdp/bin/xfreerdp /usr/local/bin/
# update libraries
echo /opt/remmina/freerdp/lib64/ | sudo tee /etc/ld.so.conf.d/freerdp_devel.conf > /dev/null
sudo ldconfig
# test freerdp with a test-connection
if [ "$freerdp_test" == "1" ]; then
xfreerdp +clipboard /sound:rate:44100,channel:2 /v:192.168.90.90 /u:DKoot
fi
fi
# clone remmina
cd /opt/remmina_build
if [ ! -d Remmina ]; then
git clone https://gitlab.com/Remmina/Remmina.git
FORCE="1"
fi
cd Remmina
# check that the repo is from gitlab
if [ $(git remote -v|head -n1 | awk '{ print $2 }') == "https://github.com/FreeRDP/Remmina.git" ]
then
echo "> repo still pointing to GitHub, changing to GitLab"
git remote remove origin
git remote add origin https://gitlab.com/Remmina/Remmina.git
git remote update
git branch --set-upstream-to=origin/master master
fi
if [ "$(git rev-parse HEAD)" == "$(git rev-parse @{u})${FORCE}" ]
then
echo "> no need to rebuild Remmina"
else
echo "> er zijn bestanden gewijzigd"
git pull
# configure, build and install remmina
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/opt/remmina/remmina -DCMAKE_PREFIX_PATH=/opt/remmina/freerdp --build=build .
make && sudo make install
# link remmina to $PATH
if [ -f /usr/local/bin/remmina ]; then
sudo rm /usr/local/bin/remmina
fi
sudo ln -s /opt/remmina/remmina/bin/remmina /usr/local/bin/
# copy desktop-file
cp /opt/remmina/remmina/share/applications/remmina.desktop /home/$USER/.local/share/applications/remmina.desktop
# fix icon in desktop-file
sed -i s:Icon=.*:Icon=/opt/remmina/remmina/share/icons/hicolor/scalable/apps/remmina.svg: /home/$USER/.local/share/applications/remmina.desktop
fi
echo "Done!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment