Automate installation of DXVK, D9VK + Wine/Wine Staging & update GPU drivers + PlayonLinux wineprefixes (Debian/Ubuntu/Mint/Arch Linux/Manjaro)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
4.8 KiB

  1. # Uninstall Wine-Staging, DXVK, meson & glslang buildtime deps on Debian
  2. # Copyright (C) 2018 Pekka Helenius
  3. #
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  16. ##############################################################################
  17. meson_deps=(
  18. 'dh-python'
  19. 'python3-setuptools'
  20. 'ninja-build'
  21. )
  22. #glslang_deps=(
  23. # Nothing to remove actually, just python2.7 which is likely required by other packages
  24. #)
  25. wine_deps=(
  26. 'libxi-dev:amd64'
  27. 'libxt-dev:amd64'
  28. 'libxmu-dev:amd64'
  29. 'libx11-dev:amd64'
  30. 'libxext-dev:amd64'
  31. 'libxfixes-dev:amd64'
  32. 'libxrandr-dev:amd64'
  33. 'libxcursor-dev:amd64'
  34. 'libxrender-dev:amd64'
  35. 'libxkbfile-dev:amd64'
  36. 'libxxf86vm-dev:amd64'
  37. 'libxxf86dga-dev:amd64'
  38. 'libxinerama-dev:amd64'
  39. 'libgl1-mesa-dev:amd64'
  40. 'libglu1-mesa-dev:amd64'
  41. 'libxcomposite-dev:amd64'
  42. 'libpng-dev:amd64'
  43. 'libssl-dev:amd64'
  44. 'libv4l-dev:amd64'
  45. 'libxml2-dev:amd64'
  46. 'libgsm1-dev:amd64'
  47. 'libjpeg-dev:amd64'
  48. # 'libkrb5-dev:amd64'
  49. 'libtiff-dev:amd64'
  50. 'libsane-dev:amd64'
  51. 'libudev-dev:amd64'
  52. 'libpulse-dev:amd64'
  53. 'liblcms2-dev:amd64'
  54. # 'libldap2-dev:amd64'
  55. 'libxslt1-dev:amd64'
  56. 'unixodbc-dev:amd64'
  57. 'libcups2-dev:amd64'
  58. 'libcapi20-dev:amd64'
  59. 'libopenal-dev:amd64'
  60. 'libdbus-1-dev:amd64'
  61. 'freeglut3-dev:amd64'
  62. 'libmpg123-dev:amd64'
  63. 'libasound2-dev:amd64'
  64. 'libgphoto2-dev:amd64'
  65. 'libosmesa6-dev:amd64'
  66. 'libpcap0.8-dev:amd64'
  67. 'libgnutls28-dev:amd64'
  68. 'libncurses5-dev:amd64'
  69. 'libgettextpo-dev:amd64'
  70. 'libfreetype6-dev:amd64'
  71. 'libfontconfig1-dev:amd64'
  72. 'libgstreamer-plugins-base1.0-dev:amd64'
  73. 'ocl-icd-opencl-dev:amd64'
  74. 'libvulkan-dev:amd64'
  75. 'libxi-dev:i386'
  76. 'libxt-dev:i386'
  77. 'libxmu-dev:i386'
  78. 'libx11-dev:i386'
  79. 'libxext-dev:i386'
  80. 'libxfixes-dev:i386'
  81. 'libxrandr-dev:i386'
  82. 'libxcursor-dev:i386'
  83. 'libxrender-dev:i386'
  84. 'libxkbfile-dev:i386'
  85. 'libxxf86vm-dev:i386'
  86. 'libxxf86dga-dev:i386'
  87. 'libxinerama-dev:i386'
  88. 'libgl1-mesa-dev:i386'
  89. 'libglu1-mesa-dev:i386'
  90. 'libxcomposite-dev:i386'
  91. 'libpng-dev:i386'
  92. 'libssl-dev:i386'
  93. 'libv4l-dev:i386'
  94. 'libgsm1-dev:i386'
  95. 'libjpeg-dev:i386'
  96. # 'libkrb5-dev:i386'
  97. 'libsane-dev:i386'
  98. 'libudev-dev:i386'
  99. 'libpulse-dev:i386'
  100. 'liblcms2-dev:i386'
  101. # 'libldap2-dev:i386'
  102. 'unixodbc-dev:i386'
  103. 'libcapi20-dev:i386'
  104. 'libopenal-dev:i386'
  105. 'libdbus-1-dev:i386'
  106. 'freeglut3-dev:i386'
  107. 'libmpg123-dev:i386'
  108. 'libasound2-dev:i386'
  109. 'libgphoto2-dev:i386'
  110. 'libosmesa6-dev:i386'
  111. 'libpcap0.8-dev:i386'
  112. 'libncurses5-dev:i386'
  113. 'libgettextpo-dev:i386'
  114. 'libfreetype6-dev:i386'
  115. 'libfontconfig1-dev:i386'
  116. 'ocl-icd-opencl-dev:i386'
  117. 'libvulkan-dev:i386'
  118. 'libxslt1-dev:i386'
  119. 'libxml2-dev:i386'
  120. 'libicu-dev:i386'
  121. 'libtiff-dev:i386'
  122. 'libcups2-dev:i386'
  123. 'libgnutls28-dev:i386'
  124. 'libgstreamer1.0-dev:i386'
  125. 'libgstreamer-plugins-base1.0-dev:i386'
  126. )
  127. dxvk_deps=(
  128. 'meson'
  129. 'glslang'
  130. 'gcc-mingw-w64-base'
  131. #'binutils-common'
  132. 'mingw-w64-common'
  133. 'binutils-mingw-w64-x86-64'
  134. 'binutils-mingw-w64-i686'
  135. 'mingw-w64-x86-64-dev'
  136. 'gcc-mingw-w64-x86-64'
  137. 'g++-mingw-w64-x86-64'
  138. 'mingw-w64-i686-dev'
  139. 'gcc-mingw-w64-i686'
  140. 'g++-mingw-w64-i686'
  141. )
  142. wine_deps_noremove=(
  143. 'gcc-multilib'
  144. 'g++-multilib'
  145. 'libxml-simple-perl'
  146. 'libxml-parser-perl'
  147. 'libxml-libxml-perl'
  148. 'lzma'
  149. 'flex'
  150. 'bison'
  151. 'quilt'
  152. 'gettext'
  153. #'oss4-dev'
  154. 'sharutils'
  155. 'pkg-config'
  156. 'dctrl-tools'
  157. 'khronos-api'
  158. 'unicode-data'
  159. 'freebsd-glue'
  160. 'icoutils'
  161. 'librsvg2-bin'
  162. 'imagemagick'
  163. 'fontforge'
  164. )
  165. core_deps_noremove=(
  166. 'make' 'cmake' 'gcc' 'git' 'build-essential' 'fakeroot'
  167. )
  168. removals_name=('Meson' 'Wine Staging' 'DXVK')
  169. removals=('${meson_deps[*]}' '${wine_deps[*]}' '${dxvk_deps[*]}')
  170. echo -e "This script removes any development/build time dependencies related to Wine & DXVK\n"
  171. i=0
  172. for k in ${removals[*]}; do
  173. echo -e "\nRemoving ${removals_name[$i]} buildtime dependencies\n"
  174. sudo dpkg --remove --force-remove-reinstreq $(eval echo ${k})
  175. let i++
  176. done
  177. # Manually obtained deb packages are expected to break system configuration, thus we need to fix it.
  178. sudo apt --fix-broken -y install
  179. echo -e "\nThe following Wine Staging buildtime dependencies were not removed:\n$(for o in ${wine_deps_noremove[*]}; do echo ${o}; done)\n"
  180. echo -e "\nThe following core buildtime dependencies were not removed:\n$(for o in ${core_deps_noremove[*]}; do echo ${o}; done)\n"
  181. read -r -p "Show list of auto removable packages which are no longer needed (use with precaution!)? [Y/n] " question
  182. if [[ $(echo $question | sed 's/ //g') =~ ^([yY][eE][sS]|[yY])$ ]]; then
  183. sudo apt-get purge --autoremove
  184. fi