LINUX.ORG.RU

История изменений

Исправление ZenitharChampion, (текущая версия) :

Собираю Firefox 52 под CentOS 5. Компилятор GCC 4.8. Патчи для понижения необходимой версии GTK2 с 2.18 до 2.10 успешно наложились: похоже что с версии 45 не было существенных изменений. Только configure.in переехал в old-configure.in, а также в toolkit/moz.configure

Собрать мне пока не удалось. Упёрся в то, что harfbuzz хочет функцию из GLIB 2.14, а у меня GLIB 2.12. Ищу способы обойти.

In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: warning: ‘hb_glib_script_to_script’ initialized and declared ‘extern’ [enabled by default]
 hb_glib_script_to_script (GUnicodeScript script);
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: error: ‘GUnicodeScript’ was not declared in this scope
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:42:11: error: ‘GUnicodeScript’ does not name a type
 HB_EXTERN GUnicodeScript
           ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: redefinition of ‘hb_script_t hb_glib_script_to_script’
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:1: error: ‘hb_script_t hb_glib_script_to_script’ previously defined here
 hb_glib_script_to_script (GUnicodeScript script);
 ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: ‘GUnicodeScript’ was not declared in this scope
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:176:1: error: ‘GUnicodeScript’ does not name a type
 GUnicodeScript
 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_unicode_combining_class_t hb_glib_unicode_combining_class(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:201:75: error: ‘g_unichar_combining_class’ was not declared in this scope
   return (hb_unicode_combining_class_t) g_unichar_combining_class (unicode);
                                                                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_script_t hb_glib_unicode_script(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:65: error: ‘g_unichar_get_script’ was not declared in this scope
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:66: error: ‘hb_glib_script_to_script’ cannot be used as a function
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                  ^

В самом harfbuzz полно условий «Если версия Glib такая-то, то». Так что это возможно.

Из других проблем. В какой-то момент компиляция встала из-за вызовов несуществующих функций (V4L2). Помогло обновление пакета kernel-headers с 2.6.18 до 2.6.23 из Fedora 8.

Самая существенная проблема - мне пришлось установить libxcb 1.4, а также обновить системный libX11 до версии 1.2. Чтобы компиляция в принципе могла начаться. Это сводит на нет все плюсы моей сборки: работа даже в самых старых дистрибутивах Linux. Минимально необходимый год выпуска дистра повышается с 2007 до 2010. А раз так, то уж лучше использовать официальную сборку на CentOS 6.

Может быть, эти либы можно прилинковать статически? Только свежие версии, а не минимально необходимые. Я вижу здесь директорию 3rdparty. Помогите, пожалуйста.

Исправление ZenitharChampion, :

Собираю Firefox 52 под CentOS 5. Компилятор GCC 4.8. Патчи для понижения необходимой версии GTK2 с 2.18 до 2.10 успешно наложились: похоже что с версии 45 не было существенных изменений. Только configure.in переехал в old-configure.in, а также в toolkit/moz.configure

Собрать мне пока не удалось. Упёрся в то, что harfbuzz хочет функцию из GLIB 2.14, а у меня GLIB 2.12. Ищу способы обойти.

In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: warning: ‘hb_glib_script_to_script’ initialized and declared ‘extern’ [enabled by default]
 hb_glib_script_to_script (GUnicodeScript script);
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: error: ‘GUnicodeScript’ was not declared in this scope
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:42:11: error: ‘GUnicodeScript’ does not name a type
 HB_EXTERN GUnicodeScript
           ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: redefinition of ‘hb_script_t hb_glib_script_to_script’
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:1: error: ‘hb_script_t hb_glib_script_to_script’ previously defined here
 hb_glib_script_to_script (GUnicodeScript script);
 ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: ‘GUnicodeScript’ was not declared in this scope
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:176:1: error: ‘GUnicodeScript’ does not name a type
 GUnicodeScript
 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_unicode_combining_class_t hb_glib_unicode_combining_class(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:201:75: error: ‘g_unichar_combining_class’ was not declared in this scope
   return (hb_unicode_combining_class_t) g_unichar_combining_class (unicode);
                                                                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_script_t hb_glib_unicode_script(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:65: error: ‘g_unichar_get_script’ was not declared in this scope
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:66: error: ‘hb_glib_script_to_script’ cannot be used as a function
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                  ^

В самом harfbuzz полно условий «Если версия Glib такая-то, то». Так что это возможно.

Из других проблем. В какой-то момент компиляция встала из-за вызовов несуществующих функций (V4L2). Помогло обновление пакета kernel-headers с 2.6.18 до 2.6.23 из Fedora 8.

Самая существенная проблема - мне пришлось установить libxcb 1.4, а также обновить системный libX11 до версии 1.2. Чтобы компиляция в принципе могла начаться. Это сводит на нет все плюсы моей сборки: работа даже в самых старых дистрибутивах Linux. Год выпуска дистра повышается с 2007 до 2010. А раз так, то уж лучше использовать официальную сборку на CentOS 6.

Может быть, эти либы можно прилинковать статически? Только свежие версии, а не минимально необходимые. Я вижу здесь директорию 3rdparty. Помогите, пожалуйста.

Исходная версия ZenitharChampion, :

Собираю Firefox 52 под CentOS 5. Компилятор GCC 4.8. Патчи для понижения необходимой версии GTK2 с 2.18 до 2.10 успешно наложились: похоже что с версии 45 не было существенных изменений. Только configure.in переехал в old-configure.in, а также в toolkit/moz.configure

Собрать мне пока не удалось. Упёрся в то, что harfbuzz хочет функцию из GLIB 2.14, а у меня GLIB 2.12. Ищу способы обойти.

In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: warning: ‘hb_glib_script_to_script’ initialized and declared ‘extern’ [enabled by default]
 hb_glib_script_to_script (GUnicodeScript script);
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:27: error: ‘GUnicodeScript’ was not declared in this scope
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:42:11: error: ‘GUnicodeScript’ does not name a type
 HB_EXTERN GUnicodeScript
           ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: redefinition of ‘hb_script_t hb_glib_script_to_script’
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
In file included from /build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:31:0,
                 from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.h:40:1: error: ‘hb_script_t hb_glib_script_to_script’ previously defined here
 hb_glib_script_to_script (GUnicodeScript script);
 ^
In file included from /build/firefox-52.3.0esr/objdir/gfx/harfbuzz/src/Unified_cpp_gfx_harfbuzz_src0.cpp:38:0:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:161:27: error: ‘GUnicodeScript’ was not declared in this scope
 hb_glib_script_to_script (GUnicodeScript script)
                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:176:1: error: ‘GUnicodeScript’ does not name a type
 GUnicodeScript
 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_unicode_combining_class_t hb_glib_unicode_combining_class(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:201:75: error: ‘g_unichar_combining_class’ was not declared in this scope
   return (hb_unicode_combining_class_t) g_unichar_combining_class (unicode);
                                                                           ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc: In function ‘hb_script_t hb_glib_unicode_script(hb_unicode_funcs_t*, hb_codepoint_t, void*)’:
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:65: error: ‘g_unichar_get_script’ was not declared in this scope
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                 ^
/build/firefox-52.3.0esr/gfx/harfbuzz/src/hb-glib.cc:236:66: error: ‘hb_glib_script_to_script’ cannot be used as a function
   return hb_glib_script_to_script (g_unichar_get_script (unicode));
                                                                  ^

В самом harfbuzz полно условий «Если версия Glib такая-то, то». Так что это возможно.

Из других проблем. В какой-то момент компиляция встала из-за вызовов несуществующих функций (V4L2). Помогло обновление пакета kernel-headers с 2.6.18 до 2.6.23 из Fedora 8.

Самая существенная проблема - мне пришлось установить libxcb 1.4, а также обновить системный libX11 до версии 1.2. Чтобы компиляция в принципе могла начаться. Это сводит на нет все плюсы моей сборки: работа даже в самых старых дистрибутивах Linux. Год выпуска дистра повышается с 2007 до 2010. А раз так, то уж лучше использовать официальную сборку на CentOS 6.

Может быть, эти либы можно прилинковать статически? Только свежие версии, а не минимально необходимые. Я вижу здесь директорию 3rdparty. Помогите, пожалуйста.