Про джаваскрипт внутри постгреса.
Apr. 17th, 2019 05:06 pmУхитрился сегодня собрать plv8 для AltLinux 8.
Сейчас, пока пишу этот пост собирается для SLES 12.
Основной прикол в том, что plv8 почему-то не устраивает та libstdc++ которая есть в дистрибутивах, им clang-овскую libc++ подавай (подозреваю, что в основном по лицензионным соображениям). Сама-то v8 вообще ничего от объемлющей системы не хочет, все качает с гугля, включая clang. (поэтому хрен ее сертифицируешь)
А вот libc++ нужно уже собственно постгресовому расширению.
Ну в общем, src rpm из EPEL с помощью лома и какой-то матери удалось запинать и под Alt, и под sles 12. В 15-то SLES все как у людей - и даже libc++ готовая. Прям как в настоящих, deb-based дистрибутивах.
В порядке особого изврата - для того чтобы собрать libc++ под alt, пришлось поставить kdelibs4-devel. Потому что MacroEnsureOutOfSourceBuild.cmake почему-то в каком-то более подходящем месте не нашелся.
Upd 22.08 "Ничего от системы не хочет" - это, к сожалению преувеличение. Она хочет libtinfo.so.5, чтобы питон по умолчанию был python2 и чтобы у него в библиотеке был xml.etree.
Первое требует на rhel8 пакета ncurses-compat-libs, а на SLES 15 libncurses5. Второй в RHEL8 требует манипуляций с update-alternatives и переменной среды PYTHON_DISASLLOW_AMBIGUOUS_VERSION. А третий в sles требует отдельного пакета python-xml. А раньше я думал только альт имеет привычку пилить стандартную библиотеку питона на мелкие ломтики.
Сейчас, пока пишу этот пост собирается для SLES 12.
Основной прикол в том, что plv8 почему-то не устраивает та libstdc++ которая есть в дистрибутивах, им clang-овскую libc++ подавай (подозреваю, что в основном по лицензионным соображениям). Сама-то v8 вообще ничего от объемлющей системы не хочет, все качает с гугля, включая clang. (поэтому хрен ее сертифицируешь)
А вот libc++ нужно уже собственно постгресовому расширению.
Ну в общем, src rpm из EPEL с помощью лома и какой-то матери удалось запинать и под Alt, и под sles 12. В 15-то SLES все как у людей - и даже libc++ готовая. Прям как в настоящих, deb-based дистрибутивах.
В порядке особого изврата - для того чтобы собрать libc++ под alt, пришлось поставить kdelibs4-devel. Потому что MacroEnsureOutOfSourceBuild.cmake почему-то в каком-то более подходящем месте не нашелся.
Upd 22.08 "Ничего от системы не хочет" - это, к сожалению преувеличение. Она хочет libtinfo.so.5, чтобы питон по умолчанию был python2 и чтобы у него в библиотеке был xml.etree.
Первое требует на rhel8 пакета ncurses-compat-libs, а на SLES 15 libncurses5. Второй в RHEL8 требует манипуляций с update-alternatives и переменной среды PYTHON_DISASLLOW_AMBIGUOUS_VERSION. А третий в sles требует отдельного пакета python-xml. А раньше я думал только альт имеет привычку пилить стандартную библиотеку питона на мелкие ломтики.