alexs писал(а):По сорцамА слить официальные сырцы от команды с SVN? Что там разрабы дистрибутива намутили - большой вопрос.
Это не разрабы дистрибутива не рабочие пакеты распространяют в массы, а качается по ссылкам с сайта разработчиков лазаруса! Заходишь на
http://www.lazarus-ide.org/ жмёшь на кнопку "Download Now" и попадаешь на соурцефордж где лежат пакеты и архивы. Отличная реклама паскалю
Про лазарус можно отмазаться что не заметили зависимость которую надо прописать в скрипте пакета, а в пакете паскаля любому кто сделал несколько пакетов сразу бросается в глаза лажа: из исходников часть кода выкинули, причём давно, а в сборочном скрипте команду, которая с выкинутым взаимодействует, не закоментили. То есть пакет не тестили или собирали в такой среде, которая плюёт на все ошибки сборки и собирает что попало. Изящное решение: сделали пакеты с исходниками легче на 30 метров, выбросив справку и демки, и не рабочими.
https://svn.freepascal.org/svn/fpc/tags/
Все версии FPC
Там лежат исходники со странными зависимостями: версии 3.0.4 для сборки требуется чтобы в системе стояла именно версия 3.0.2 - версия 3.0.4 не подходит. Что же там намутили что компилятор разучился собирать сам себя? И там только голые исходники, без каталогов с документацией и демками, а весят из-за эсвээновской требухи больше. Большой необходимости именно в этом хранилище ощутить не успел, т.к. выкладываемые разработчиками на файлообменники исходники в архивах типа fpcbuild-3.0.4.tar.gz содержат всё что надо (но для 3.0.4 надо чтобы в системе не было версий <3.0.2, иначе лезут ошибки компиляции) для сборки на ПК, а также документацию, которую путём хитрого трюка можно собирать и автоматически, в пакете. Пока лазарус не нужно было пересобирать, вопрос корявости распространяемых пакетов так остро не стоял. Чтобы собрать такой пакет со всеми справкими и демками, справку надо патчить чтобы при сборке не задавала вопросы про ИОС, на которые нет хорошего ответа. Для версии 2.6.4 делал src.rpm с fpcbuild-*.tar.gz в качестве исходников, справку собирал так:
- Код: Выделить всё
KATALOG2=`pwd`
cd $KATALOG1
patch -p0 < %{SOURCE18}
cd $KATALOG2
make -i -j1 -C fpcdocs html pdf FORCE FPC=${NEWPP} FPDOC=${NEWFPDOC}
То есть патчить исходники нужно уже после сборки компилятора, вот таким патчем
- Код: Выделить всё
--- compiler/msg/errore.msg~ 2014-02-25 13:05:54.000000000 +0200
+++ compiler/msg/errore.msg 2014-03-13 19:26:02.000000000 +0200
@@ -2938,12 +2938,6 @@
% Not all debug formats can be stored in an external file on all platforms. In particular, on
% Mac OS X only DWARF debug information can be stored externally.
option_invalid_macosx_deployment_target=11049_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1
-option_invalid_iphoneos_deployment_target=11050_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1
-% On Mac OS X, the MACOSX_DEPLOYMENT_TARGET/IPHONEOS_DEPLOYMENT_TARGET environment variable can be
-% used to set the default target OS version. In case of Mac OS X, it has to be of the format
-% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9.
-% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2
-% digits from 0-9.
%\end{description}
# EndOfTeX
Решение, как починить сборку пакета есть давно, но до бракоделов не докричишься. В дистрибутивах пакеты чинят каждый по своему.