Bug 5373

Summary: Сборка wine-gecko из исходников
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: ДистрибутивAssignee: Vitaly Lipatov <lav>
Status: CLOSED INVALID QA Contact: Vitaly Lipatov <lav>
Severity: minor    
Priority: P3 CC: boris, kondratyuk, olezha
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3000    

Description Vitaly Lipatov 2010-03-29 21:02:52 MSD
Чтобы иметь возможность вносить изменения и оперативно исправлять wine-gecko, нужно разработать процедуру сборки wine-gecko в пакет из исходников.
Предварительный вариант, ещё не проходящий сборку, здесь:
http://git.etersoft.ru/projects/?p=wine/wine-gecko.git;a=shortlog;h=refs/heads/wine-gecko-1.0eter
Единственное, что будет мешать полностью автоматической сборке - необходимость создания CAB-архива при сборке.
Comment 1 Vitaly Lipatov 2010-03-29 21:39:53 MSD
Прорабатывал сборку.
Comment 2 Константин Кондратюк 2010-03-30 12:15:21 MSD
Сделал #undef XP_WIN - ошибка в jsnum.cpp исчезла.
Но всё равно в xpcom возникает ошибка из-за того, что используется gcc. В --host переопределение убрал, не помогает, хотя при configure вроде везде mingw...
Comment 3 Константин Кондратюк 2010-03-31 10:27:22 MSD
При сборке на builder этой ошибки с xpcom не возникает. Но хочет netcon.h:
/srv/kondratyuk/Projects/wine-gecko/netwerk/system/win32/nsNotifyAddrListener.cpp:45:20: error: netcon.h: No such file or directory

Судя по msdn, это виндовый заголовок, который обеспечивает работу функций для "Internet Connection Sharing and Internet Connection Firewall"
Comment 4 Константин Кондратюк 2010-03-31 10:46:51 MSD
(In reply to comment #3)
хочет netcon.h:
> /srv/kondratyuk/Projects/wine-gecko/netwerk/system/win32/nsNotifyAddrListener.cpp:45:20:
> error: netcon.h: No such file or directory

Искомый netcon.h есть в ./wine/include

Далее:
In file included from ../../dist/include/nsContentList.h:53,
                 from ../../dist/include/nsContentUtils.h:52,
                 from ../../dist/include/nsPresContext.h:72,
                 from /srv/kondratyuk/Projects/wine-gecko/uriloader/base/nsDocLoader.cpp:59:
../../dist/include/nsStubMutationObserver.h:62: error: conflicting type attributes specified for 'virtual void nsStubMutationObserver::AttributeWillChange(nsIDocument*, nsIContent*, PRInt32, nsIAtom*, PRInt32)'
../../dist/include/nsIMutationObserver.h:152: error:   overriding 'virtual void nsIMutationObserver::AttributeWillChange(nsIDocument*, nsIContent*, PRInt32, nsIAtom*, PRInt32)'
m
Comment 5 Константин Кондратюк 2010-03-31 12:16:56 MSD
В описании метода AttributeWillChange используется макрос NS_METHOD_(void), тогда как в макросе  NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTEWILLCHANGE этот метод объявлен как virtual void.

Такая же ошибка встречается в трёх методах дальше по компилируемым файлам...
Comment 6 Константин Кондратюк 2010-03-31 17:34:25 MSD
Споткнулся на линковке:
/srv/kondratyuk/Projects/wine_gecko/nss/freebl/WIN95_SINGLE_SHLIB/sysrand.o:sysrand.c:(.text+0x221): undefined reference to `_SHGetSpecialFolderPathW'

Функция есть в libshell32.a, но модуль не линкуется ни просто с -lshell32, ни при явном указании -L для библиотеки.
Comment 7 Константин Кондратюк 2010-04-01 09:35:55 MSD
_SHGetSpecialFolderPathW существует как в "вайновской" libshell32.a, так и в стандартной от mingw. По умолчанию линковаться пробует со стандартной.

Впрочем, указание явного пути к библиотеке или даже просто замена mingw'шной библиотеки результата не приносят. mingw видит библиотеку, но не видит в ней функции.
Comment 8 Константин Кондратюк 2010-04-01 10:21:32 MSD
Для разнообразия закомментировал функцию и попробовал пойти дальше...

Дальше возникает ещё одна ошибка линковки - и тут помогает использование libuuid.a и libshell32.a из ./wine/lib

После решения этой проблемы gecko собирается до конца :)
Comment 9 Константин Кондратюк 2010-04-01 11:29:28 MSD
При загрузке требуется libgcc_s_sjlj-1.dll.
Это какой-то известный mingw-шный баг
http://lists-archives.org/mingw-users/15278-seeking-libgcc_s_dw2-1-dll.html
Comment 10 Boris Savelev 2010-04-01 13:08:05 MSD
соибрай с LDFLAGS="-static-libgcc"
или подложи либу из
/usr/i586-pc-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll
Comment 11 Vitaly Lipatov 2011-03-25 17:12:50 MSK
Нужно собирать gecko из исходников, иначе это некрасиво для Сизифа и не очень тривиально в отладке.
В Fedora пытались сделать то же самое. Gecko 1.2.0 для Wine улучшено, чтобы сборка проходила без проблем.
https://bugzilla.redhat.com/show_bug.cgi?id=577951
Comment 12 Vitaly Lipatov 2020-09-12 03:45:50 MSK
Как собирает Fedora
https://src.fedoraproject.org/rpms/mingw-wine-gecko/blob/master/f/mingw-wine-gecko.spec
Comment 13 Олег Шевченко 2024-04-17 23:23:50 MSK
Задача по релизу W@E 1.0.12
Уже давно не актуально, закрываю.