1. все fpc/lazarus у меня ставятся в свои каталоги
2. версии lazarus привязаны к версии fpc (настраивается)
3. разруливанием версий, настройкой окружения, конфиг-каталогами у меня занимается отдельный набор скриптов
4. установлены след. версии (пишу из под sl14.2 x64, в основной оси sl12.2 и того больше)
старые версии
- Код: Выделить всё
fpc-3.0.4 / lazarus_1.8.4 gtk
fpc-3.0.4 / lazarus_2.0.4 gtk
fpc-3.0.4 / lazarus_2.0.6 gtk
fpc-3.0.4 / lazarus_2.0.8 gtk
fpc-3.2.0 / lazarus_2.0.10 qt4 (основная)
новые версии (последние)
- Код: Выделить всё
fpc-3.2.0 / lazarus-2.0.12
fpc-3.2.2 / lazarus-2.2.0
старые версии - б.м, без особых проблем работают
новые версии - тут появились неразрешимые проблемы
///////////////////////////////////////////////////////////////////////////////
> spoiler - немного о настройке окружения fpc/lazarus
### fpc
установка/PREFIX, конфиги:
- Код: Выделить всё
/usr/fpc ~/config/fpc/3.0.4/{fpc.cfg,fppkg.cfg} <-- default (старая версия)
/opt/fpc-3.2.0 : ~/config/fpc/3.2.0/{fpc.cfg,fppkg.cfg}
/opt/fpc-3.2.2 : ~/config/fpc/3.2.2/{fpc.cfg,fppkg.cfg}
### lazarus (аналогично)
- Код: Выделить всё
/opt/lazarus-x.x.x : ~/config/lazar/x.x.x/{*}
в запускающих скриптах производится настройка окружения
- Код: Выделить всё
export PPC_CONFIG_PATH=<путь к fpc.cfg>
на всякий случай сделал "аналогичную переменную" для fppkg.cfg, думал проканает
но, видимо не проканало

- Код: Выделить всё
export FPPKG_CONFIG_PATH=<путь к fppkg.cfg>
///////////////////////////////////////////////////////////////////////////////
далее, коротко и поподробнее :о)
///////////////////////////////////////////////////////////////////////////////
Коротко
можно предположить что-то поломали либо в fpc, либо в lazarus
считаю что-то поломали в lazarus, т.к. с обоими "новыми" fpc-версиями "старые" лазари собираются/работают без проблем
в частности, проверил
- Код: Выделить всё
slackware-14.2 x64
lazarus_2.0.10 / fpc-3.2.0
lazarus_2.0.10 / fpc-3.2.2
собирал в 3х версиях гуи: gt2, qt4, qt5
проверено на 2х системах sl12.2/14.2 (в той или иной степени глюки повторяются)
> spoiler
причем qt4 отлично рисует шрифты, в отличие qt5-шг!!! ну а gtk-всегда рисовал отлично :о)
///////////////////////////////////////////////////////////////////////////////
Подробности "новых" косяковх
1. проблемы в настройках IDE-окружения/проекта
- первый запуск лазаря, не видит путей к конфигам fpc, (PPC_CONFIG_PATH - настроена)
- после указания в настройках пути к fppkg.cfg - на первое время успокаивается, но потом все равно выдает подобные сообщения
- видимо, как следствие, выдается сообщение, что неизвестные настройки платформы/процессора итд
помогает принудительная настройка:
- Код: Выделить всё
menu / tools / configure build lazarus
указание Target_OS/CPU
тоже самое надо проделать с настройками проекта (сделать дефолтными):
- Код: Выделить всё
menu / project / project options / compiller options / config & target
после данных настроек лазарь может собирать пустой проект



2. сборка минимального проекта (пустая форма с одной кнопкой)
при добавлении кнопки и 2м кликом по кнопке (формирование обработчика) - выдается ошибка
подсвечивается файл base.inc, он, естественно присутствует в "дереве" (файлы на месте)
и мне особенно не понятно, причем тут файлы винды?!
ошибка:
- Код: Выделить всё
Codetools, Errors: 1
windows.pp(44,5) Error: include file not found "base.inc"
файлы windows.pp
- Код: Выделить всё
fpc-source-3.0.4
/usr/src/fpc-3.0.4/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/usr/src/fpc-3.0.4/rtl/win32/windows.pp
/usr/src/fpc-3.0.4/rtl/win64/windows.pp
/usr/src/fpc-3.0.4/rtl/wince/windows.pp
fpc_3.2.0
/opt/fpc-3.2.0/src/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/opt/fpc-3.2.0/src/rtl/win32/windows.pp
/opt/fpc-3.2.0/src/rtl/win64/windows.pp
/opt/fpc-3.2.0/src/rtl/wince/windows.pp
fpc_3.2.2
/opt/fpc-3.2.2/src/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/opt/fpc-3.2.2/src/rtl/win32/windows.pp
/opt/fpc-3.2.2/src/rtl/win64/windows.pp
/opt/fpc-3.2.2/src/rtl/wince/windows.pp
файлы base.inc
- Код: Выделить всё
fpc-source-3.0.4
/usr/src/fpc-3.0.4/rtl/win/wininc/base.inc
/usr/src/fpc-3.0.4/rtl/wince/wininc/base.inc
fpc_3.2.0
/opt/fpc-3.2.0/src/rtl/win/wininc/base.inc
/opt/fpc-3.2.0/src/rtl/wince/wininc/base.inc
fpc_3.2.2
/opt/fpc-3.2.2/src/rtl/win/wininc/base.inc
/opt/fpc-3.2.2/src/rtl/wince/wininc/base.inc
естестенно, сборка не идет, и, хуже того, со временем сваливается сам лазарь и может(*) потянуь за собой и линух
(*) - преспокойно так делал неск. раз (возможно, конечно же совпадение, но у меня линух падает в исключительных случаях)
в инете есть упоминание о похожем, но это не то
url
ПРИЧЕМ, сам лазарь может себя пересобрать, при некоторых особеностях(*)!
(*) особенности заключаются в пересборке c QT-версией GUI, далее



add 2022.01.21 - ноги растут из файла-рессуров
c каких это ... "условных едениц"... тут присутствует настройки для Windows/win32 ?
- Код: Выделить всё
project1.res
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">^M
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.AppName" type="win32"/>
<description>Your application description.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595
</dependentAssembly>
на скриншотах видно, что подключаемый файл с ошибкой это
- Код: Выделить всё
/opt/fpc-3.2.2/src/rtl/wince/windows.pp
{$i base.inc}
дополнительно
1. проект с кнопкой, созданный под lazarus-2.0.10 и нормально собираемый и запускаемый, все так-же выдает ошибку в lazarus-2.0.12
2. лазарь и паскаль собранные в стандартный PREEFIX работает нормально
- Код: Выделить всё
PREFIX=/usr
проверял на
- Код: Выделить всё
lazarus-2.0.12
fpc-3.2.0
UPDATE путем подмены выяснилось:
лазарь/fpc тупит именно из-за того, что кто-либо (lazarus or fpc) расположены по ссылке
допустим так
- Код: Выделить всё
/opt/fpc-3.2.2 -->
~/opt/fpc-3.2.2


3. особенности пересборки Lazarus c QT-версией GUI
если в настройках
- Код: Выделить всё
menu / Tools / Configure Buils Lazarus
выбрать qt5, то сборка пройдет нормально, не важно какой GUI-Toolkit был выбран при сборке qt4 или qt5 (пересборка пройдет нормально под тем-же тулкитом, т.е. если лазарь был собран с qt4, то и пересобирется в qt4)
если выбрать qt - вывалит непонятная ошибка

4. Ambiguous units found: Lazarus 2.0.12
URL
///////////////////////////////////////////////////////////////////////////////
косяки старых версий
1. настройки проекта, не видят настройки -FU в конфиг-файле

- Код: Выделить всё
PPC_CONFIG_PATH - настроен, указывает на fpc.cfg
~/config/fpc/x.x.x/fpc.cfg
предполагаю, что лазарь не анализирует настройку окружения, PPC_CONFIG_PATH (fpc нормально "настраивается")
2. проблема "просмотра пакетного менеджера"
при просмотре пакетов, если потеряется фокус, типа переключились посмотреть что-то другое, то уже не вернется обратно, только через kill ... the-bill
а отвлекаться надо! если что-то прочитать или еще чего подглядеть в "других" текстах, инете.
- Код: Выделить всё
1. menu / Package / Install-Uninstall Packages
2. появления окна пакетного менеджера
3. переключаемся на другой приложение/рабочий стол
4. возвращаемся обратно к лазару
5. нет доступа к окну пакетного менеджера, лазар не реагирует на обращение к меню итд,
6. kiillall lazarus
3. баг редактора, промотка кода
(*) как выснилось, это фича редактора! только не понятно, отключаемая или нет?
при промотке текста "имя-заглавие функции" остается на месте, а весь код функции проматывается
(наткнулся один раз)










4. эпичный баг, реакция нажатия на кнопку мышью и пробелом
2020.07.08 замечен и задокументирован :о) на пленку
на пробел - не срабатывает, очищается (видимо по дефолту)
по нажатию мышкой - отрабатывает нормально (видео продублированы)
video1
video2
///////////////////////////////////////////////////////////////////////////////
дополнение/обращение к программистам/кураторам проекта lazarus
1. ск. всего в лазаре нет анализа переменной PPC_CONFIG_PATH, т.к. при "первых" запусках лазаря выдается куча сообщений что "fpc.cfg не найден"
видимо, или "около того из-за этого" в последних вер. появилась настройка пути к fppkg.cfg
предлогаю (было-бы не плохо):
добавить анализ переменных окружения:
- Код: Выделить всё
PPC_CONFIG_PATH -> путь к fpc.cfg
FPPKG_CONFIG_PATH -> путь к fppkg.cfg (*)
и если они "трушные" сделать "автоматическое" добавление/переопределение настройки в гуях лазаря
(*) - в инете не нашел упоминания об "использовании" данной переменной, видимо, ее как раз и не существует.
предлагаю "добавить" в наш "арсенал"
так-же добавить, в gui-настройки путь к fpc.cfg, как уже сделано для fppkg.cfg
///////////////////////////////////////////////////////////////////////////////
- Код: Выделить всё
Linux
Slackware 12.2/x32 - Trinity TDE 3.5.12
- kernel 2.6.33.20
- gtk+2-2.20.1
- glibc-2.11.1
- qt4pas-2.1
- qt4-4.7.4
- qt4-4.8.7
Slackware 14.2/x64 - Trinity TDE 4.0.11
- kernel ...
///////////////////////////////////////////////////////////////////////////////
всех с новым годом, новым частем... надеюсь, сообществу пригодиться
