Advertisement
para_bellum

Aegisub Debian

Dec 28th, 2013
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.89 KB | None | 0 0
  1. Dernière version d'Aegisub (3.1 beta 2 https://github.com/Aegisub/Aegisub/releases/tag/v3.1.0-beta2) sur Crunchbang Waldorf.
  2.  
  3. Motivation : http://blog.aegisub.org/2013/12/there-are-still-some-issues-to-sort-out.html
  4. Principalement l'ajout d'une fonctionnalité permettant de voir l'original d'une ligne pendant sa modification, le seul truc qui me faisait détester la version 3.0 et donc rester sur la 2.1.9.
  5.  
  6. Notes:
  7. > Désinstaller : sudo make distclean, ou sudo make uninstall.
  8. Idéalement, je devrais utiliser checkinstall.
  9. > Checkinstall : http://community.linuxmint.com/tutorial/view/162
  10. sudo apt-get install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev checkinstall
  11.  
  12. A/Dépendances http://devel.aegisub.org/wiki/Build/Deps
  13.  
  14. 1/ Installer wxwidgets
  15. Dépendances : libgtk2.0-dev, opengl.
  16. >OpenGL: libgl1-mesa-dev libglu1-mesa-dev ?
  17. http://devel.aegisub.org/wiki/Build/Ubuntu conseille de build avec --with-opengl,
  18. mais http://devel.aegisub.org/wiki/Build/Unix conseille STC en plus :
  19. --with-opengl --enable-stc
  20. Donc,
  21. $ ./configure --with-opengl --enable-stc
  22. # make
  23. # make install
  24. On termine avec ldconfig, commme le conseille wxwidgets à la fin de l'installation :
  25. # ldconfig
  26.  
  27. Note : j'ai retiré et la version 3.0 et suis repassé à la 2.9.5 pour tester si l'installation d'Aegisub fonctionne. Mais on ne peut pas, la beta 2 d'Aegisub 3.1 requiert wxwidgets >= 3.0.0.
  28. $ sudo make uninstall dans le dossier de wxdidgets-2.9.5, donc.
  29. Entretemps, j'ai activé le dépôt testing de debian sur lequel se trouve la version 3.0.
  30. On va donc l'installer de là :
  31. para@para-clevo:~/sources/wxWidgets-2.9.5$ sudo apt-cache policy libwxgtk3.0-dev
  32. libwxgtk3.0-dev:
  33. Installed: (none)
  34. Candidate: 3.0.0-2
  35. Version table:
  36. 3.0.0-2 0
  37. 400 http://http.debian.net/debian/ testing/main i386 Packages
  38.  
  39. $ sudo apt-get install wx-common libwxgtk3.0-dev -t testing
  40. (wx-common contient les dépendances de libwxgtk3.0-dev)
  41. Mais ça ne fonctionne pas, donc on les dégage :
  42. sudo apt-get purge libwxgtk3.0-0 libwxgtk3.0-dev wx-common && sudo apt-get autoremove
  43. On réinstalle la version 3.0.0 à partir des sources, du coup.
  44.  
  45. para@para-clevo:~/sources/Aegisub-3.1.0-beta2/aegisub$ wx-config --libs
  46. -L/usr/local/lib -pthread -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0
  47.  
  48. C'est bon, on repart compiler aegisub 3.1-beta2.
  49.  
  50.  
  51. //Optionels
  52.  
  53. 2/Audio player
  54. para@para-clevo:~$ sudo apt-cache policy pulseaudio
  55. pulseaudio:
  56. Installed: 2.0-6.1
  57. Candidate: 2.0-6.1
  58. Version table:
  59. 4.0-6~bpo7+1 0
  60. 100 http://http.debian.net/debian/ wheezy-backports/main i386 Packages
  61. *** 2.0-6.1 0
  62. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  63. 100 /var/lib/dpkg/status
  64. Il faut néanmoins les paquets de développement : libpulse-dev.
  65.  
  66. 3/ Hunspell
  67. para@para-clevo:~$ sudo apt-cache policy hunspell
  68. hunspell:
  69. Installed: (none)
  70. Candidate: 1.3.2-4
  71. Version table:
  72. 1.3.2-4 0
  73. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  74. J'ajoute libhunspell-dev. Note : installer le paquet dico français : hunspell-fr
  75.  
  76. 4/ Lua
  77. para@para-clevo:~$ sudo apt-cache policy lua5.1
  78. lua5.1:
  79. Installed: (none)
  80. Candidate: 5.1.5-4
  81. Version table:
  82. 5.1.5-4 0
  83. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  84. j'ajoute liblua5.1-dev.
  85.  
  86. 5/ Libass
  87. para@para-clevo:~$ sudo apt-cache policy libass4
  88. libass4:
  89. Installed: 0.10.0-3
  90. Candidate: 0.10.0-3
  91. Version table:
  92. *** 0.10.0-3 0
  93. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  94. 100 /var/lib/dpkg/status
  95.  
  96. J'ajoute aussi libass-dev.
  97.  
  98. 6/ FFMS2
  99. para@para-clevo:~$ sudo apt-cache policy libffms2-2
  100. libffms2-2:
  101. Installed: (none)
  102. Candidate: 2.17-1
  103. Version table:
  104. 2.17-1 0
  105. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  106. J'ajoute libffms2-dev. (note : certaines dépendances ont été cherchées sur le dépôt multimédia)
  107.  
  108. 7/ FFTW3
  109. para@para-clevo:~$ sudo apt-cache policy libfftw3-3
  110. libfftw3-3:
  111. Installed: 3.3.2-3.1
  112. Candidate: 3.3.2-3.1
  113. Version table:
  114. *** 3.3.2-3.1 0
  115. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  116. 100 /var/lib/dpkg/status
  117. J'ajoute libfftw3-dev.
  118.  
  119. //Requis
  120.  
  121. 8/ Gettext
  122. para@para-clevo:~$ sudo apt-cache policy gettext
  123. gettext:
  124. Installed: (none)
  125. Candidate: 0.18.1.1-9
  126. Version table:
  127. 0.18.3-1~bpo7+1 0
  128. 100 http://http.debian.net/debian/ wheezy-backports/main i386 Packages
  129. 0.18.1.1-9 0
  130. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  131. -> Pas besoin des backports
  132.  
  133. 9/ Iconv
  134. D'après la doc, ça a l'air chiant à compiler (http://www.gnu.org/software/libiconv/).
  135. Heureusement, d'après la doc Debian (http://www.debian.org/doc/manuals/debian-reference/ch11.en.html),
  136. ça fait déjà partie de libc6.
  137. para@para-clevo:~$ sudo apt-cache policy libc6
  138. libc6:
  139. Installed: 2.13-38
  140. Candidate: 2.13-38
  141. Version table:
  142. *** 2.13-38 0
  143. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  144. 100 /var/lib/dpkg/status
  145.  
  146. 10/ FontConfig
  147. para@para-clevo:~$ sudo apt-cache policy fontconfig
  148. fontconfig:
  149. Installed: 2.9.0-7.1
  150. Candidate: 2.9.0-7.1
  151. Version table:
  152. *** 2.9.0-7.1 0
  153. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  154. 100 /var/lib/dpkg/status
  155.  
  156. 11/ FreeType2
  157. Automatiquement installé avec libass-dev : libfreetype6-dev.
  158.  
  159. 12/ Icu-cu
  160. para@para-clevo:~$ sudo apt-cache policy libicu-dev
  161. libicu-dev:
  162. Installed: (none)
  163. Candidate: 4.8.1.1-12+deb7u1
  164. Version table:
  165. 4.8.1.1-12+deb7u1 0
  166. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  167. 500 http://security.debian.org/ wheezy/updates/main i386 Packages
  168.  
  169.  
  170. 13/ libboost
  171. Il faut lib boost >= 1.50, or la version de libbost-all-dev sur le dépôt stable de wheezy n'en est encore qu'à 1.49. Il va donc falloir aller piocher dans les dépôts testing.
  172. a/ Ajouter dépôts à /etc/apt/sources.list :
  173. deb http://http.debian.net/debian testing main contrib non-free
  174. b/ Modifier le pinning des paquets dans /etc/apt/preferences. Mon fichier ressemble par exemple à ça :
  175. ///
  176. Package: *
  177. Pin: release a=waldorf
  178. Pin-Priority: 1001
  179.  
  180. Package: *
  181. Pin: release a=wheezy
  182. Pin-Priority: 500
  183.  
  184. Package: *
  185. Pin: release a=testing
  186. Pin-Priority: 400
  187. \\\
  188.  
  189. On peut maintenant voir que apt me propose la version 1.54 de BOOST :
  190. para@para-clevo:~$ sudo apt-cache policy libboost-all-dev
  191. libboost-all-dev:
  192. Installed: (none)
  193. Candidate: 1.49.0.1
  194. Version table:
  195. 1.54.0.1 0
  196. 400 http://http.debian.net/debian/ testing/main i386 Packages
  197. 1.49.0.1 0
  198. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  199. mais avec une plus faible priorité que stable.
  200.  
  201. On va passer outre cette priorité en utilisant l'argument -t de apt-get :
  202. # apt-get install -t testing libboost-all-dev
  203.  
  204. Mais ce n'est pas suffisant, on se retrouve avec plein d'erreur à l'installation dans le genre :
  205. /home/para/sources/Aegisub-3.1.0-beta2/aegisub/src/main.cpp:120: undefined reference to `boost::locale::generator::~generator()'
  206.  
  207. D'après http://forum.aegisub.org/viewtopic.php?f=10&t=65740#p88803 , il faut compiler boost en c++11.
  208. Donc on dégage boost : `# apt-get purge libboost-all-dev`
  209. On le récupère sur http://www.boost.org/
  210. Ensuite:
  211. `$ ./bootstrap.sh
  212. $ ./b2 cxxflags=-std=c++11
  213. # ./b2 install`
  214.  
  215. Note : Je suis repassé à la version 1.54 pour tester la compatibilité à cause de plantages pendant la compilation d'Aegisub, mais ça n'avait manifestement rien à voir avec boost, finalement. La version 1.55 devrait passer.
  216.  
  217. B/ Aegisub
  218. ///
  219. $ ./configure
  220. Configure settings
  221. Install prefix: /usr/local
  222. Revision: v3.1.0-beta2
  223. Debug no
  224. CFLAGS -Wall -Wextra -Wno-unused-parameter -std=gnu99 -pipe -g -O3
  225. CXXFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3
  226. CPPFLAGS
  227. LDFLAGS
  228. LIBS -lm
  229.  
  230. Default Settings
  231. Audio Player: OSS
  232.  
  233. Audio Players
  234. ALSA: no
  235. OpenAL: no
  236. OSS: yes
  237. PortAudio: no
  238. PulseAudio: yes
  239.  
  240. A/V Providers
  241. FFMS2: yes
  242.  
  243. Misc Packages
  244. Hunspell: yes
  245. FFTW3: yes
  246. \\\
  247. Log complet de configure : http://pastebin.com/NDdwF3bW
  248. Le # make fait de la grosse merde, là.
  249.  
  250. ///
  251. make -C universalchardet
  252. make -C libaegisub
  253. make -C desktop
  254. make -C po
  255. make[1]: Entering directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/universalchardet'
  256. make[1]: Nothing to be done for `all'.
  257. make[1]: Leaving directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/universalchardet'
  258. make[1]: Entering directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/desktop'
  259. make[1]: Nothing to be done for `all'.
  260. make[1]: Leaving directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/desktop'
  261. make[1]: Entering directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/po'
  262. make[1]: Nothing to be done for `all'.
  263. make[1]: Leaving directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/po'
  264. make[1]: Entering directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/libaegisub'
  265. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/hotkey.o common/hotkey.cpp
  266. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/json.o common/json.cpp
  267. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/kana_table.o common/kana_table.cpp
  268. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/karaoke_matcher.o common/karaoke_matcher.cpp
  269. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/keyframe.o common/keyframe.cpp
  270. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/log.o common/log.cpp
  271. make[1]: Leaving directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/libaegisub'
  272. g++ -MD -MP -pthread -I/usr/include -Wall -Wextra -Wno-unused-parameter -Wno-long-long -fno-strict-aliasing -pipe -g -std=c++11 -Wno-c++11-narrowing -O3 -Iinclude -I../src -I.. -DLAGI -fPIC -Wno-variadic-macros -include lagi_pre.h -c -o common/io.o common/io.cpp
  273. In file included from /usr/local/include/boost/container/allocator_traits.hpp:27:0,
  274. from /usr/local/include/boost/container/detail/iterators.hpp:24,
  275. from /usr/local/include/boost/container/list.hpp:21,
  276. from ./lagi_pre.h:62,
  277. from <command-line>:0:
  278. /usr/local/include/boost/intrusive/pointer_traits.hpp: In instantiation of ‘static T* boost::intrusive::pointer_traits<T*>::static_cast_from(U*) [with U = const void; T = boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>; boost::intrusive::pointer_traits<T*>::pointer = boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>*]’:
  279. /usr/local/include/boost/intrusive/detail/tree_node.hpp:168:94: required from ‘boost::intrusive::tree_iterator<RealValueTraits, IsConst>::const_real_value_traits_ptr boost::intrusive::tree_iterator<RealValueTraits, IsConst>::get_real_value_traits() const [with RealValueTraits = boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>; bool IsConst = false; boost::intrusive::tree_iterator<RealValueTraits, IsConst>::const_real_value_traits_ptr = const boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>*]’
  280. /usr/local/include/boost/intrusive/detail/tree_node.hpp:118:70: required from ‘boost::intrusive::tree_iterator<RealValueTraits, IsConst>::tree_iterator(const boost::intrusive::tree_iterator<RealValueTraits, false>&) [with RealValueTraits = boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>; bool IsConst = false]’
  281. /usr/local/include/boost/container/detail/iterators.hpp:760:27: required from ‘boost::container::container_detail::iterator<IIterator, IsConst>::iterator(const boost::container::container_detail::iterator<IIterator, false>&) [with IIterator = boost::intrusive::tree_iterator<boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>, false>; bool IsConst = false]’
  282. include/libaegisub/signal.h:279:22: required from here
  283. /usr/local/include/boost/intrusive/pointer_traits.hpp:245:39: error: static_cast from type ‘const void*’ to type ‘boost::intrusive::pointer_traits<boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>*>::pointer {aka boost::intrusive::bhtraits<boost::container::container_detail::rbtree_node<std::pair<agi::signal::detail::ConnectionToken* const, std::function<void()> >, void*>, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>*}’ casts away qualifiers
  284. cc1plus: warning: unrecognized command line option "-Wno-c++11-narrowing" [enabled by default]
  285. make[1]: *** [common/hotkey.o] Error 1
  286. make[1]: *** Waiting for unfinished jobs....
  287. make[1]: Leaving directory `/home/para/sources/Aegisub-3.1.0-beta2/aegisub/libaegisub'
  288. make: *** [libaegisub] Error 2
  289. \\\
  290.  
  291. Boost pose clairement un problème. Je vais essayer avec boost 1.54.
  292. D'abord, pour désinstaller boost : http://lists.boost.org/boost-users/2005/01/9444.php
  293. `# rm -r /usr/local/lib/libboost* && rm -r /usr/local/include/boost/`
  294.  
  295. Ça ne fonctionne toujours pas et ça me casse les couilles.
  296.  
  297. Pour l'instant, ça se passe bien. Aegisub ne semblait pas bien supporter `# make -j4`, malgré mes 2 cœurs physiques _hyperthreadés_. `# make` a l'air de passer.
  298.  
  299. `# checkinstall` ne fonctionne pas.
  300. On se rabat donc sur `# make install`.
  301.  
  302. Oh merde, ça marche \o/
  303.  
  304.  
  305. C/ Dictionnaires
  306. View > Options > Interface :
  307. Dictionnaries path => /usr/share/hunspell
  308.  
  309. D/ Résultats :
  310. Dico OK.
  311. Vidéo OK.
  312. Audio : plante au chargement :
  313. Assertion 'c->callback' failed at pulsecore/socket-client.c:128, function do_call(). Aborting.
  314.  
  315. -> essayer de réinstaller avec alsa comme moteur audio, au lieu de pulseaudio.
  316.  
  317.  
  318. ########################################
  319. On commence par désinstaller aegisub. Pas de script de désinstallation, donc à la main :
  320. `$ sudo rm -r `find /usr/ -name 'aegisub*'` && rm -r /home/para/.aegisub/`
  321.  
  322. > Installation alsa. Alsa est déjà installé, mais ça ne suffit pas à Aegisub ; le log de ./configure indique toujours que Alsa n'a pas été troué. du coup, comment savoir quel paquet installer ?
  323. => En allant voir la page web du paquet aegisub : http://packages.debian.org/source/sid/aegisub
  324. Dans ses dépendances, on trouve
  325. «
  326.  
  327. adep: libasound2-dev [linux-any]
  328. shared library for ALSA applications -- development files
  329. also a virtual package provided by liboss4-salsa-dev
  330.  
  331. »
  332. => para@para-clevo:~/sources/Aegisub-3.1.0-beta2/aegisub$ sudo apt-cache policy libasound2-dev
  333. libasound2-dev:
  334. Installed: (none)
  335. Candidate: 1.0.25-4
  336. Version table:
  337. 1.0.27.2-3 0
  338. 400 http://http.debian.net/debian/ testing/main i386 Packages
  339. 1.0.25-4 0
  340. 500 http://http.debian.net/debian/ wheezy/main i386 Packages
  341.  
  342. La version stable suffira.
  343. => `sudo apt-get install libasound2-dev`
  344.  
  345. > Configure.
  346. Log : http://pastebin.com/xMPX5Byw , alsa est activé.
  347.  
  348. > make && sudo make install
  349.  
  350. > On check que tout fonctionne :
  351. Sous-titres OK
  352. Dico OK
  353. Vidéo OK
  354. Audio OK
  355. Polices OK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement