Для сборки требуется fpc 2.3.1.
(В ответ на комментарий №1) > Для сборки требуется fpc 2.3.1. Вряд ли стоит переходить на нестабильную версию fpc.
не верно, прекрасно собирается и работает на fpc-2.2.4
lazarus-0.9.26.2/tools/lazdatadesktop/README.txt:42 Compilation currently requires fpc 2.3.1 (5 December 2007). Если есть рецепт сборки, приложите.
Если без Makefile.fpc, то просто lazdatadesktop]$ ../../lazbuild lazdatadesktop.lpr Но при этом у вас должны быть собраны и установлены следующие пакеты: собирающиеся по умолчанию с ide lazarus: SynEdit LCL RunTimeTypeInfoControls собирающиеся только в режиме bigide: lazdatadict SQLDBLaz DBFLaz lazdbexport Для сборки lazarus'а в bigide нужны правки: 1) в нескольких Makefile.fpc; 2) следующее изменение для lazarus.pp: [ashen@oasu3 patch]$ diff -ur lazarus.orign/ide/lazarus.pp lazarus.work/ide/lazarus.pp --- lazarus.orign/ide/lazarus.pp 2009-04-21 17:19:00 +0400 +++ lazarus.work/ide/lazarus.pp 2009-07-20 16:07:18 +0400 @@ -73,6 +73,29 @@ {$IFDEF Linux} SQLDBLaz, DBFLaz, {$ENDIF} + fpcunitconsolerunner, + lazopenglcontext, + rx, + rxnew, + editortoolbar, + h2paswizard, + lazcustforms, + lazdaemon, + lazreport, + lazthread, + prettyformat, + prettymessages, + simpleideintf, + synuni, + imagesforlazarus, + pack_powerpdf, + lr_add_function, + lazreportpdfexport, + lazdbexport, + lazweb, + idefilebrowser, + lazmouseandkeyinput, + lazparadox, {$ENDIF} MainBase; [ashen@oasu3 patch]$ (тут я правда подключаю ещё кучу других пакетов не нужных для lazdatadesktop'а, но нужных для пользователей :) ); 3) создание (исправление) соответствующих lpl-файлов в packager/globallinks
(In reply to comment #5) > Если без Makefile.fpc, то просто Вы не могли бы приложить патч (diff) между сизифным srpm и Вашим исправленным (помимо lazarus.pp) ?
Для lazarus-0.9.26.2 в спек добавить такие две строчки: [ashen@oasu3 SPECS]$ cat lazarus.spec | grep datadesktop %buildroot%_libdir/%name/lazbuild %buildroot%_libdir/%name/tools/lazdatadesktop/lazdatadesktop.lpr strip %buildroot%_libdir/%name/tools/lazdatadesktop/lazdatadesktop править lazarus.pp для этого не надо. Эти правки нужны для сбокри в режиме bigide и для наличия "из коробки" ряда дополнительных компонент, тем более взятых со стороны, таких как RxFpc, pack_powerpdf.
> Fatal: Hе могy найти PPU файл Interfaces. > ERROR: failed compiling of project /usr/src/RPM/BUILD/lazarus/tools/lazdatadesktop/lazdatadesktop.lpi Вы не пробовали в хэшере пересобирать?
Пардон, сам не много запутался и вас запутал. Нужно cоздать makefile.fpc для: {$LazDir}/componets/datadict {$LazDir}/componets/dbexport Исправить {$LazDir}/componets/Makefile.fpc Исправить {$LazDir}/ide/Makefile.fpc {$LazDir}/ide/bigidemake.cfg ну и сам {$LazDir}/ide/lazarus.pp перегенерировать makefile с помощью fpcmake -pwr пересобрать сам лазарус через make lazbuilder bigide и только после этого собирать lazdatadesktop результуриющий diff для этого у меня слишком кривой получается ... Пока криво выходит ... может я ещё что то упустил ...
На данный момент вот такое: [ashen@oasu3 lazarus]$ git status # On branch experimental # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: components/Makefile.fpc # modified: components/lazreport/source/addons/addfunction/lr_add_function.lpk # modified: components/messagecomposer/languages/messagecomposer.po # modified: components/projecttemplates/languages/frmtemplatevariables.de.po # modified: components/projecttemplates/languages/frmtemplatevariables.es.po # modified: components/projecttemplates/languages/frmtemplatevariables.fr.po # modified: components/projecttemplates/languages/frmtemplatevariables.id.po # modified: components/projecttemplates/languages/frmtemplatevariables.it.po # modified: components/projecttemplates/languages/frmtemplatevariables.lt.po # modified: components/projecttemplates/languages/frmtemplatevariables.pb.po # modified: components/projecttemplates/languages/frmtemplatevariables.pl.po # modified: components/projecttemplates/languages/frmtemplatevariables.po # modified: components/projecttemplates/languages/frmtemplatevariables.ru.po # modified: components/projecttemplates/languages/idetemplateproject.po # modified: components/synedit/synedit.pp # modified: ide/Makefile.fpc # modified: ide/bigidemake.cfg # modified: ide/lazarus.pp # modified: ide/revision.inc # modified: install/lazarus.desktop # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # components/chmhelp/packages/help/Makefile.fpc # components/chmhelp/packages/idehelp/Makefile.fpc # components/compilers/c/Makefile.fpc # components/customform/Makefile.fpc # components/daemon/Makefile.fpc # components/datadict/Makefile.fpc # components/dbexport/Makefile.fpc # components/editortoolbar/Makefile.fpc # components/filebrowser/Makefile.fpc # components/fpcunit/console/Makefile.fpc # components/fpweb/Makefile.fpc # components/h2pas/Makefile.fpc # components/images/Makefile.fpc # components/lazreport/source/Makefile.fpc # components/lazreport/source/addons/addfunction/Makefile.fpc # components/lazreport/source/addons/pdfexport/Makefile.fpc # components/lazthread/Makefile.fpc # components/messagecomposer/Makefile.fpc # components/mouseandkeyinput/Makefile.fpc # components/opengl/Makefile.fpc # components/paradox/Makefile.fpc # components/powerpdf/ # components/prettyformat/Makefile.fpc # components/prettymessages/Makefile.fpc # components/rx/rxdbgrid.pas # components/rxnew/ # components/simpleideintf/Makefile.fpc # components/sqlite/Makefile.fpc # components/synunihighlighter/Makefile.fpc # docs/html/fcl/ # docs/html/lcl/ # docs/html/rtl/ # packager/globallinks/dcl_rx_ctrl-3.lpl # packager/globallinks/pack_powerpdf-0.lpl # packager/globallinks/rxnew-3.lpl no changes added to commit (use "git add" and/or "git commit -a") [ashen@oasu3 lazarus]$ Надеюсь на днях доделаю и закрою эту багу
на комент #6 выложил: http://git.altlinux.org/people/ashen/packages/?p=lazarus.git;a=shortlog;h=refs/heads/experemental
Created attachment 3816 [details] lazdatadesktop
На http://git.altlinux.org/people/ashen/packages/?p=lazarus.git;a=shortlog;h=refs/heads/experemental последнии мои изменения lazarus. Собирается из гита в режиме bigide. Так же вместе с lazarus'ом собирается и lazdatadesktop. Прошу проверить собираемость на x86_64. Отталкивался от http://git.altlinux.org/people/bga/packages/?p=lazarus.git;a=summary
На x86_64 не собирается: make[2]: Leaving directory `/usr/src/RPM/BUILD/lazarus/components/sqldb' make -C chmhelp/packages/help make[2]: Entering directory `/usr/src/RPM/BUILD/lazarus/components/chmhelp/packages/help' Makefile:185: *** The Makefile doesn't support target x86_64-linux, please run fpcmake first. Stop. make[2]: Leaving directory `/usr/src/RPM/BUILD/lazarus/components/chmhelp/packages/help'
Я полагаю, вместо Makefile в components нужно рассовать Makefile.fpc с указанием под-директорий, тогда fpcmake -pwr по всем ним пройдётся и создаст Makefile для сборочной архитектуры.
В спеке стоит вызов fpcmake -pwr, по идеи он должен обойти рекурсивно поддиректории и создать Makefile под конкретную архитектуру, но этого не происходит. От сюда и не собираемость на x86_64. Сейчас над этим и работаю. По какой причине fpcmake не заходит да же в $LazarusDir/componets я так ещё не выяснил.
(В ответ на комментарий №16) > По какой причине fpcmake не заходит да же в $LazarusDir/componets я так ещё не > выяснил. Почему "не заходит"? Заходит. ... Processing components/Makefile.fpc x86_64-linux requires: Writing Makefile Processing components/synedit/Makefile.fpc x86_64-linux requires: rtl,regexpr Writing Makefile ... Но вот в components/Makefile.fpc "dirs = synedit codetools" , поэтому он не заходит в cmhelp.
Надо тогда в components/Makefile.fpc добавить такое: rtticontrols printers printers/design cgi cgi/ide turbopower_ipro turbopower_ipro/design fpcunit fpcunit/ide projecttemplates memds sdf tachart tdbf \ sqldb chmhelp/packages/help chmhelp/packages/idehelp codetools compilers/c customform daemon datadict dbexport editortoolbar filebrowser fpcunit fpcunit/console fpweb h2pas \ images powerpdf lazreport/source lazreport/source/addons/addfunction lazreport/source/addons/pdfexport lazthread macfiles memds messagecomposer mouseandkeyinput opengl paradox \ powerpdf prettyformat prettymessages printers projecttemplates rtticontrols rx rxnew sdf simpleideintf sqldb sqlite synedit synunihighlighter tachart tdbf turbopower_ipro
Коммит cd83e7b у меня в гите не собирается с такой диагностикой: ... Компилиpование runtimetypeinfocontrols.pas Опpеделен макpос: FPC_PIC Опpеделен макpос: PIC Компилиpование rttictrls.pas Макpос неопpеделен: FPC_OBJFPC Опpеделен макpос: FPC_OBJFPC Опpеделен макpос: FPC_PIC Опpеделен макpос: PIC Fatal: Hе могy найти PPU файл GraphPropEdits. Fatal: Compilation aborted make[2]: *** [runtimetypeinfocontrols.ppu] Error 1 make[2]: Leaving directory `/usr/src/RPM/BUILD/lazarus/components/rtticontrols'
Уже столкнулся с этой ошибкой. Разбираюсь.
Created attachment 3851 [details] experemental lazarus spec Григорий, проверьте сборку лазаря с приложенным спеком, лог сборки, если можно, мне письмом.
Наконец-то получилось, см. коммит 59e312b66 у меня в гите. На первый взгляд, всё работает. Алексей, проверьте, пожалуйста, у себя, и я отправлю эту сборку в Сизиф.
1) Patch1: %name-%version-alt-changes.patch я его выкинул за не надобностью. Дима его сделал на своё усмотрение. К примеру он посчитал что сообщения компилятора должны выдаваться на английском, а не на русском. И в спеке лазаря принудительно подключил вывод сообщений на английском. А это делается в /etc/fpc.cfg cat /etc/fpc.cfg | grep msg #-Fr/usr/lib/fpc/msg/errore.msg #-Fr/usr/lib/fpc/msg/errorn.msg -Fr/usr/lib/fpc/msg/errorru.msg По умолчанию, в тарболе с freepascal.org сообщения выдаются на голандском ... :) Это уже мы в альте на русский переключаем и в локале UTF8 (в исходниках этот файл в cp1251) И, Гриш, в твоём гите нет этого патча. Здесь http://git.altlinux.org/people/bga/packages/?p=lazarus.git;a=tree;h=59e312b66b2a17fa2e69fac6b7c7f66bf5600ab5;hb=59e312b66b2a17fa2e69fac6b7c7f66bf5600ab5 я этот патч не увидел. 2) Что существенней: make: Leaving directory `/home/ashen/RPM/BUILD/lazarus' + ./lazbuild --ws=gtk2 tools/lazdatadesktop/lazdatadesktop.lpr NOTE: miscellaneous options file not found - using defaults invalid Package Link: file "/usr/lib/lazarus/components/sqldb/sqldblaz.lpk" does not exist. invalid Package Link: file "/usr/lib/lazarus/components/dbexport/lazdbexport.lpk" does not exist. ERROR: Broken dependency: lazdatadict ошибка: Неверный код возврата из /home/ashen/tmp/rpm-tmp.93736 (%build) В https://bugzilla.altlinux.org/attachment.cgi?id=3851 я ведь не просто так сборку lazdatadesktop поставил в самый конец, после выше следующих строк. Иначе просто не собирается ...
3) Гриш, а зачем из спека убрал вызов strip lazarus sratlazarus lazbuild ? То что ты подхватил моё предложение сжимать *.o файлы согласен, ибо размер каталога с лазарем уменьшается ~30-50%. Но сами то исполняемые бинарные файлы не сжимаются. [ashen@oasu3 lazarus]$ ls -l | grep lazarus -rwxr-xr-x 1 ashen ashen 89470230 Сен 7 11:35 lazarus drwxr-xr-x 3 ashen ashen 4096 Апр 21 17:19 lazarus.app -rwxr-xr-x 1 ashen ashen 28229359 Сен 7 11:35 startlazarus drwxr-xr-x 3 ashen ashen 4096 Апр 21 17:19 startlazarus.app [ashen@oasu3 lazarus]$ strip lazarus startlazarus [ashen@oasu3 lazarus]$ ls -l | grep lazarus -rwxr-xr-x 1 ashen ashen 14426436 Сен 11 09:59 lazarus drwxr-xr-x 3 ashen ashen 4096 Апр 21 17:19 lazarus.app -rwxr-xr-x 1 ashen ashen 5069292 Сен 11 09:59 startlazarus drwxr-xr-x 3 ashen ashen 4096 Апр 21 17:19 startlazarus.app [ashen@oasu3 lazarus]$ Или я не правильно прочитал спек?
(В ответ на комментарий №23) > 1) Patch1: %name-%version-alt-changes.patch я его выкинул за не надобностью. Это автоматический патч между оригинальным тарболом и текущим деревом, см. .gear/rules . Моя сборка выводит сообщения на русском, против английского не возражаю, но не знаю, где включить =) > make: Leaving directory `/home/ashen/RPM/BUILD/lazarus' > + ./lazbuild --ws=gtk2 tools/lazdatadesktop/lazdatadesktop.lpr > NOTE: miscellaneous options file not found - using defaults > invalid Package Link: file "/usr/lib/lazarus/components/sqldb/sqldblaz.lpk" does not exist. > invalid Package Link: file > "/usr/lib/lazarus/components/dbexport/lazdbexport.lpk" does not exist. > ERROR: Broken dependency: lazdatadict > ошибка: Неверный код возврата из /home/ashen/tmp/rpm-tmp.93736 (%build) Как это? У меня собирается без ошибок. На Сизифе в хэшере. В логе упоминаются "Compiling package lazdatadict 0.0" completed "Compiling package lazdbexport 1.0" completed > 3) Гриш, а зачем из спека убрал вызов strip lazarus sratlazarus lazbuild ? Их rpm стрипает перед упаковкой, а до *.o не дотягивается. Запусти после установки $ file /usr/lib/lazarus/lazarus
(В ответ на комментарий №25) > (В ответ на комментарий №23) > > 1) Patch1: %name-%version-alt-changes.patch я его выкинул за не надобностью. > Это автоматический патч между оригинальным тарболом и текущим деревом, см. > .gear/rules . Понял, возражений не имею. >Моя сборка выводит сообщения на русском, против английского не > возражаю, но не знаю, где включить =) В /etc/fpc.cfg раскоментируем/колментируем соотвествующие строки: -Fr/usr/lib/fpc/msg/errore.msg #-Fr/usr/lib/fpc/msg/errorn.msg #-Fr/usr/lib/fpc/msg/errorru.msg Но сколько лет у нас fpc/lazarus на русском выводит сообщения компиляции и ни кто ещё против не был :) > Как это? У меня собирается без ошибок. На Сизифе в хэшере. В логе упоминаются > "Compiling package lazdatadict 0.0" completed > "Compiling package lazdbexport 1.0" completed Это видать у меня локальный косяк при сборке. Обновлюсь и попробую снова. Есть пара вопросов, но сначала надо посмотреть собранное. Гриш, на x86_64 собирается? > > 3) Гриш, а зачем из спека убрал вызов strip lazarus sratlazarus lazbuild ? > Их rpm стрипает перед упаковкой, а до *.o не дотягивается. Запусти после > установки > $ file /usr/lib/lazarus/lazarus Ясно. Меньше вызовов, быстрее сборка. Спасибо за разъяснение.
После обновления у меня так и не собирается. Если лазарус собирается на x86_64, то можно заливать в сизиф, но сначала глянуть на такое: cat laz.diff diff --git a/lazarus/ide/Makefile.fpc b/lazarus/ide/Makefile.fpc index a9281d7..b5795ad 100644 --- a/lazarus/ide/Makefile.fpc +++ b/lazarus/ide/Makefile.fpc @@ -150,7 +150,7 @@ BIG_IDE_OPTIONS=-dBigIDE $(LAZARUS_LIBPATHS) \ -Fu../components/rxnew/lib/$(CPU_TARGET)-$(OS_TARGET) \ -Fu../components/sdf/lib/$(CPU_TARGET)-$(OS_TARGET) \ -Fu../components/simpleideintf/lib/$(CPU_TARGET)-$(OS_TARGET) \ - -Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET) \ + -Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \ -Fu../components/sqlite/lib/$(CPU_TARGET)-$(OS_TARGET) \ -Fu../components/synedit/lib/$(CPU_TARGET)-$(OS_TARGET) \ -Fu../components/synunihighlighter/lib \ diff --git a/lazarus/ide/bigidemake.cfg b/lazarus/ide/bigidemake.cfg index 03d0049..1e4fbd1 100644 --- a/lazarus/ide/bigidemake.cfg +++ b/lazarus/ide/bigidemake.cfg @@ -35,7 +35,7 @@ -Fu../components/rxnew/lib/$(CPU_TARGET)-$(OS_TARGET) -Fu../components/sdf/lib/$(CPU_TARGET)-$(OS_TARGET) -Fu../components/simpleideintf/lib/$(CPU_TARGET)-$(OS_TARGET) --Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET) +-Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) -Fu../components/sqlite/lib/$(CPU_TARGET)-$(OS_TARGET) -Fu../components/synedit/lib/$(CPU_TARGET)-$(OS_TARGET) -Fu../components/synunihighlighter/lib В sqldblaz.lpk указывается ещё и $(LCL_PLATFORM) А в ide/bigidemake.cfg и Makefile.fpc не указана платформа на.
Да, если нет, то добавить такой каталог: components/dbexport/lib/ Больше вроде нет замечаний.
(В ответ на комментарий №26) > Есть пара вопросов, но сначала надо посмотреть собранное. > Гриш, на x86_64 собирается? Разумеется. (В ответ на комментарий №27) > - -Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET) \ > + -Fu../components/sqldb/lib/$(CPU_TARGET)-$(OS_TARGET)/$(LCL_PLATFORM) \ Ок, исправлю. (В ответ на комментарий №28) > Да, если нет, то добавить такой каталог: > components/dbexport/lib/ > Больше вроде нет замечаний. Вчера собиралось, а сегодня ещё не пробовал =) Куда добавить-то?
(В ответ на комментарий №29) > (В ответ на комментарий №26) > > Есть пара вопросов, но сначала надо посмотреть собранное. > > Гриш, на x86_64 собирается? > Разумеется. Хорошо. Опасался, что rxnew не собирётся. Если есть возможность проверить на x86, проверь, пожалуйста. Чтобы убедится, что он не собирается именно на моём компе с AMD Phenom(tm) 9550 Quad-Core Processor > (В ответ на комментарий №28) > > Да, если нет, то добавить такой каталог: > > components/dbexport/lib/ > > Больше вроде нет замечаний. > Куда добавить-то? в каталог components/dbexport/ подкаталог lib/ но если собралось бюез него, то в принципе можно и не делать этот подкаталог. :)
fixed in lazarus-0.9.26.2-alt3
Спасибо!