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.

221 lines
5.1 KiB

  1. # Uninstall Wine-Staging, DXVK, D9VK, 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. d9vk_deps=(
  143. 'meson'
  144. 'glslang'
  145. 'gcc-mingw-w64-base'
  146. #'binutils-common'
  147. 'mingw-w64-common'
  148. 'binutils-mingw-w64-x86-64'
  149. 'binutils-mingw-w64-i686'
  150. 'mingw-w64-x86-64-dev'
  151. 'gcc-mingw-w64-x86-64'
  152. 'g++-mingw-w64-x86-64'
  153. 'mingw-w64-i686-dev'
  154. 'gcc-mingw-w64-i686'
  155. 'g++-mingw-w64-i686'
  156. )
  157. wine_deps_noremove=(
  158. 'gcc-multilib'
  159. 'g++-multilib'
  160. 'libxml-simple-perl'
  161. 'libxml-parser-perl'
  162. 'libxml-libxml-perl'
  163. 'lzma'
  164. 'flex'
  165. 'bison'
  166. 'quilt'
  167. 'gettext'
  168. #'oss4-dev'
  169. 'sharutils'
  170. 'pkg-config'
  171. 'dctrl-tools'
  172. 'khronos-api'
  173. 'unicode-data'
  174. 'freebsd-glue'
  175. 'icoutils'
  176. 'librsvg2-bin'
  177. 'imagemagick'
  178. 'fontforge'
  179. )
  180. core_deps_noremove=(
  181. 'make' 'cmake' 'gcc' 'git' 'build-essential' 'fakeroot'
  182. )
  183. removals_name=('Meson' 'Wine Staging' 'DXVK' 'D9VK')
  184. removals=('${meson_deps[*]}' '${wine_deps[*]}' '${dxvk_deps[*]}' '${d9vk_deps[*]}')
  185. echo -e "This script removes any development/build time dependencies related to Wine, DXVK & D9VK\n"
  186. i=0
  187. for k in ${removals[*]}; do
  188. echo -e "\nRemoving ${removals_name[$i]} buildtime dependencies\n"
  189. sudo dpkg --remove --force-remove-reinstreq $(eval echo ${k})
  190. let i++
  191. done
  192. # Manually obtained deb packages are expected to break system configuration, thus we need to fix it.
  193. sudo apt --fix-broken -y install
  194. echo -e "\nThe following Wine Staging buildtime dependencies were not removed:\n$(for o in ${wine_deps_noremove[*]}; do echo ${o}; done)\n"
  195. echo -e "\nThe following core buildtime dependencies were not removed:\n$(for o in ${core_deps_noremove[*]}; do echo ${o}; done)\n"
  196. read -r -p "Show list of auto removable packages which are no longer needed (use with precaution!)? [Y/n] " question
  197. if [[ $(echo $question | sed 's/ //g') =~ ^([yY][eE][sS]|[yY])$ ]]; then
  198. sudo apt-get purge --autoremove
  199. fi