r7554 can't be built

For submission of patches, language translations, discussing implementation of some feature, etc.

r7554 can't be built

Unread postby Shimapan » Sat Feb 09, 2013 9:15 pm

I noticed that you raised the requirement for the boost libraries (libboost) from 1.49 to 1.50 now, so I installed version 1.50 including development files from the main repositories (it's the very same version that's also used in Debian).

Configure went fine, but make produced an error.
This is the last line before the error: (yes, that's a single line)

Code: Select all
g++ -o aegisub-3.1   audio_player_alsa.o audio_player_pulse.o audio_player_openal.o audio_player_oss.o audio_provider_ffmpegsource.o video_provider_ffmpegsource.o ffmpegsource_common.o subtitles_provider_libass.o auto4_lua.o auto4_lua_assfile.o auto4_lua_dialog.o auto4_lua_progresssink.o auto4_lua_scriptreader.o spellchecker_hunspell.o MatroskaParser.o aegisublocale.o ass_attachment.o ass_dialogue.o ass_entry.o ass_export_filter.o ass_exporter.o ass_file.o ass_karaoke.o ass_override.o ass_parser.o ass_style.o ass_style_storage.o ass_time.o audio_box.o audio_controller.o audio_colorscheme.o audio_display.o audio_karaoke.o audio_marker.o audio_player.o audio_provider.o audio_provider_convert.o audio_provider_hd.o audio_provider_lock.o audio_provider_pcm.o audio_provider_ram.o audio_renderer.o audio_renderer_spectrum.o audio_renderer_waveform.o audio_timing_dialogue.o audio_timing_karaoke.o auto4_base.o avisynth_wrap.o base_grid.o charset_detect.o colorspace.o colour_button.o compat.o dialog_about.o dialog_attachments.o dialog_automation.o dialog_autosave.o dialog_colorpicker.o dialog_detached_video.o dialog_dummy_video.o dialog_export.o dialog_export_ebu3264.o dialog_fonts_collector.o dialog_jumpto.o dialog_kara_timing_copy.o dialog_log.o dialog_paste_over.o dialog_progress.o dialog_properties.o dialog_resample.o dialog_search_replace.o dialog_selected_choices.o dialog_selection.o dialog_shift_times.o dialog_spellchecker.o dialog_style_editor.o dialog_style_manager.o dialog_styling_assistant.o dialog_text_import.o dialog_timing_processor.o dialog_translation.o dialog_version_check.o dialog_video_details.o audio_provider_dummy.o export_fixstyle.o export_framerate.o fft.o font_file_lister.o font_file_lister_fontconfig.o frame_main.o gl_text.o gl_wrap.o help_button.o hotkey.o hotkey_data_view_model.o initial_line_state.o kana_table.o main.o menu.o mkv_wrap.o pen.o persist_location.o plugin_manager.o preferences.o preferences_base.o search_replace_engine.o scintilla_text_ctrl.o scintilla_text_selection_controller.o spellchecker.o spline.o spline_curve.o string_codec.o subs_controller.o subs_edit_box.o subs_edit_ctrl.o subs_grid.o subs_preview.o subtitle_format.o subtitle_format_ass.o subtitle_format_ebu3264.o subtitle_format_encore.o subtitle_format_microdvd.o subtitle_format_mkv.o subtitle_format_srt.o subtitle_format_transtation.o subtitle_format_ttxt.o subtitle_format_txt.o subtitles_provider.o text_file_reader.o text_file_writer.o thesaurus.o timeedit_ctrl.o threaded_frame_source.o toggle_bitmap.o toolbar.o tooltip_manager.o utils.o validators.o vector2d.o version.o video_box.o video_context.o video_display.o video_frame.o video_out_gl.o video_provider_cache.o video_provider_dummy.o video_provider_manager.o video_provider_yuv4mpeg.o video_slider.o visual_feature.o visual_tool.o visual_tool_clip.o visual_tool_cross.o visual_tool_drag.o visual_tool_rotatexy.o visual_tool_rotatez.o visual_tool_scale.o visual_tool_vector_clip.o command/app.o command/audio.o command/automation.o command/edit.o command/grid.o command/help.o command/keyframe.o command/recent.o command/subtitle.o command/time.o command/timecode.o command/tool.o command/video.o command/vis_tool.o command/icon.o command/command.o libresrc/bitmap.o libresrc/default_config.o libresrc/libresrc.o -L../libaegisub -laegisub -lm    -lGL   -L/usr/local/lib -pthread   -lwx_gtk2u_gl-2.9 -lwx_gtk2u_stc-2.9 -lwx_gtk2u_xrc-2.9 -lwx_gtk2u_webview-2.9 -lwx_gtk2u_html-2.9 -lwx_gtk2u_qa-2.9 -lwx_gtk2u_adv-2.9 -lwx_gtk2u_core-2.9 -lwx_baseu_xml-2.9 -lwx_baseu_net-2.9 -lwx_baseu-2.9  -lz -lfreetype   -lfontconfig   -lfftw3 -lm   ../universalchardet/libuniversalchardet.a -L/usr/lib  -lboost_filesystem -lboost_locale-mt -lboost_regex-mt -lboost_system -lboost_thread -licuuc -licudata   -licui18n -licuuc -licudata   -lasound -lrt -lpulse   -lopenal   -lffms2   -lass   -llua5.1   -lhunspell-1.3


Right after that, there's the error:

Code: Select all
../libaegisub/libaegisub.a(fs.o): In function `copy_file':
/usr/include/boost/filesystem/operations.hpp:388: undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::copy_option, boost::system::error_code*)'
collect2: Fehler: ld gab 1 als Ende-Status zurück
make[1]: *** [aegisub-3.1] Fehler 1


It seems something went wrong in your move from 1.49 to 1.50.
Here's what it refers to from operations.hpp:

Code: Select all
  inline
  void copy_file(const path& from, const path& to,   // See ticket #2925
                 BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec)
                                       {detail::copy_file(from, to, option, &ec);}


Line 388 is the last line, starting with {detail:: ...

I'm no programmer, so that error doesn't tell me much.
Linux x64 packages for Aegisub 3 (3.2.0 final - 2014-07-29)
http://erokawaii.org/linux
User avatar
Shimapan
{\clip\t(\clip)}
{\clip\t(\clip)}
 
Posts: 143
Joined: Tue Oct 02, 2012 3:38 pm
Location: Germany

Re: r7554 can't be built

Unread postby Plorkyeran » Sun Feb 10, 2013 1:57 am

boost.fileystem's ABI changes depending on whether it's compiled as C++03 or C++11, and any packages are probably going to be compiled as C++03, while Aegisub is C++11. As such, Aegisub currently requires a custom built copy of boost compiled in C++11 mode (which isn't terribly difficult other than that boost's build system is weird and different). I'm not particularly happy with boost.filesystem, so I'm thinking of ripping it out and replacing it with something custom which would solve this problem.
User avatar
Plorkyeran
Developer
 
Posts: 119
Joined: Fri Oct 22, 2010 6:23 pm

Re: r7554 can't be built

Unread postby Shimapan » Sun Feb 10, 2013 3:04 pm

Plorkyeran wrote:boost.fileystem's ABI changes depending on whether it's compiled as C++03 or C++11, and any packages are probably going to be compiled as C++03, while Aegisub is C++11. As such, Aegisub currently requires a custom built copy of boost compiled in C++11 mode (which isn't terribly difficult other than that boost's build system is weird and different). I'm not particularly happy with boost.filesystem, so I'm thinking of ripping it out and replacing it with something custom which would solve this problem.


I see... What was the last build before r7554 where you still used boost 1.49? Version 1.49 didn't give any difficulties.
Also, until you have replaced boost, is it really neccessary that you use boost 1.50 instead of 1.49?
Linux x64 packages for Aegisub 3 (3.2.0 final - 2014-07-29)
http://erokawaii.org/linux
User avatar
Shimapan
{\clip\t(\clip)}
{\clip\t(\clip)}
 
Posts: 143
Joined: Tue Oct 02, 2012 3:38 pm
Location: Germany

Re: r7554 can't be built

Unread postby Shimapan » Mon Feb 11, 2013 1:07 am

Took a look at the source packages at github, and the last that still uses libboost 1.49 and can be built without problems is r7477.
All later source packages (r7538 and up) require that specialized build of libboost 1.50 and cannot be built anymore.
Linux x64 packages for Aegisub 3 (3.2.0 final - 2014-07-29)
http://erokawaii.org/linux
User avatar
Shimapan
{\clip\t(\clip)}
{\clip\t(\clip)}
 
Posts: 143
Joined: Tue Oct 02, 2012 3:38 pm
Location: Germany

Re: r7554 can't be built

Unread postby Shimapan » Wed Apr 03, 2013 2:42 pm

Plorkyeran wrote:boost.fileystem's ABI changes depending on whether it's compiled as C++03 or C++11, and any packages are probably going to be compiled as C++03, while Aegisub is C++11. As such, Aegisub currently requires a custom built copy of boost compiled in C++11 mode (which isn't terribly difficult other than that boost's build system is weird and different). I'm not particularly happy with boost.filesystem, so I'm thinking of ripping it out and replacing it with something custom which would solve this problem.


Nearly two months now... Just wanted to know, has there been any progress yet in replacing the maligned boost.filesystem?
Linux x64 packages for Aegisub 3 (3.2.0 final - 2014-07-29)
http://erokawaii.org/linux
User avatar
Shimapan
{\clip\t(\clip)}
{\clip\t(\clip)}
 
Posts: 143
Joined: Tue Oct 02, 2012 3:38 pm
Location: Germany

Re: r7554 can't be built

Unread postby Corvus123 » Mon May 27, 2013 7:38 pm

According to this and this, it's fixed now, right?
Corvus123
{\b1}
{\b1}
 
Posts: 11
Joined: Thu Oct 11, 2012 8:10 pm

Re: r7554 can't be built

Unread postby alilyamongthorns » Tue Jun 04, 2013 7:34 am

What did I do wrong?

I cloned wxWidgets from git and built it with
Code: Select all
./configure --with-opengl --enable-debug --enable-debug_gdb --enable-debug_cntxt --enable-stc --enable-stl
make && sudo make install
sudo ldconfig

I got the boost source and built it with
Code: Select all
./bootstrap.sh
./b2 toolset=gcc cxxflags=-std=c++11
sudo ./b2 install

I cloned aegis from git and built it with
Code: Select all
export CXXFLAGS='-DBOOST_FILESYSTEM_VERSION=3'
./autogen.sh
./configure --enable-debug
make

and got this error
Code: Select all
dialog_attachments.cpp: In member function ‘void DialogAttachments::OnExtract(wxCommandEvent&)’:
dialog_attachments.cpp:153:131: error: no match for ‘operator=’ in ‘path = wxDirSelector(const wxString&, const wxString&, long int, const wxPoint&, wxWindow*)((*(const wxString*)(& to_wx(const string&)())), 536877120l, (* & wxDefaultPosition), 0u)’
dialog_attachments.cpp:153:131: note: candidates are:
In file included from /usr/local/include/boost/filesystem.hpp:16:0,
                 from ./../libaegisub/lagi_pre.h:65,
                 from ./agi_pre.h:51,
                 from <command-line>:0:
/usr/local/include/boost/filesystem/path.hpp:184:11: note: boost::filesystem::path& boost::filesystem::path::operator=(const boost::filesystem::path&)
/usr/local/include/boost/filesystem/path.hpp:184:11: note:   no known conversion for argument 1 from ‘wxString’ to ‘const boost::filesystem::path&’
/usr/local/include/boost/filesystem/path.hpp:190:11: note: boost::filesystem::path& boost::filesystem::path::operator=(const value_type*)
/usr/local/include/boost/filesystem/path.hpp:190:11: note:   no known conversion for argument 1 from ‘wxString’ to ‘const value_type* {aka const char*}’
/usr/local/include/boost/filesystem/path.hpp:199:5: note: template<class Source> typename boost::enable_if<boost::filesystem::path_traits::is_pathable<typename boost::decay<Source>::type>, boost::filesystem::path&>::type boost::filesystem::path::operator=(const Source&)
/usr/local/include/boost/filesystem/path.hpp:199:5: note:   template argument deduction/substitution failed:
/usr/local/include/boost/filesystem/path.hpp: In substitution of ‘template<class Source> typename boost::enable_if<boost::filesystem::path_traits::is_pathable<typename boost::decay<Source>::type>, boost::filesystem::path&>::type boost::filesystem::path::operator=(const Source&) [with Source = wxString]’:
dialog_attachments.cpp:153:131:   required from here
/usr/local/include/boost/filesystem/path.hpp:199:5: error: no type named ‘type’ in ‘struct boost::enable_if<boost::filesystem::path_traits::is_pathable<wxString>, boost::filesystem::path&>’
make[1]: *** [dialog_attachments.o] Error 1
make[1]: Leaving directory `/home/becca/aegisub/aegisub/src'
make: *** [src] Error 2
alilyamongthorns
Comic Sans MS
Comic Sans MS
 
Posts: 1
Joined: Tue Jun 04, 2013 7:11 am

Re: r7554 can't be built

Unread postby Shimapan » Sat Jun 15, 2013 12:07 am

Corvus123 wrote:According to this and this, it's fixed now, right?


Yes, I can confirm that the bug is finally fixed now ;D

alilyamongthorns wrote:What did I do wrong?

I cloned wxWidgets from git...


You can download a build of wxWidgets 2.9.5 from my page, it works fine with Aegisub 3.x:
http://erokawaii.org/pantsu/?page_id=5181

If you need to build wxWidgets yourself, you'd better wait for a developer to take a look at your errors, or better yet, ask at the wxwidgets forum.
Linux x64 packages for Aegisub 3 (3.2.0 final - 2014-07-29)
http://erokawaii.org/linux
User avatar
Shimapan
{\clip\t(\clip)}
{\clip\t(\clip)}
 
Posts: 143
Joined: Tue Oct 02, 2012 3:38 pm
Location: Germany


Return to Development

Who is online

Users browsing this forum: No registered users and 1 guest