Bug 20664

Summary: Отсутствует lazdatadesktop в бинарном виде. Так же его надо интегрировать с IDE Lazarus.
Product: Sisyphus Reporter: ashen <lex.shen>
Component: lazarusAssignee: Andrey Cherepanov <cas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, bga, cas, ender
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 19564    
Attachments:
Description Flags
lazdatadesktop
none
experemental lazarus spec none

Description ashen 2009-07-02 16:21:58 MSD

    
Comment 1 Grigory Batalov 2009-08-05 15:57:15 MSD
Для сборки требуется fpc 2.3.1.
Comment 2 AEN 2009-08-05 16:01:36 MSD
(В ответ на комментарий №1)
> Для сборки требуется fpc 2.3.1.

Вряд ли стоит переходить на нестабильную версию fpc.
Comment 3 ashen 2009-08-10 11:56:48 MSD
не верно, прекрасно собирается и работает на fpc-2.2.4
Comment 4 Grigory Batalov 2009-08-10 12:52:52 MSD
lazarus-0.9.26.2/tools/lazdatadesktop/README.txt:42
Compilation currently requires fpc 2.3.1 (5 December 2007).

Если есть рецепт сборки, приложите.
Comment 5 ashen 2009-08-10 13:41:31 MSD
Если без 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
Comment 6 Grigory Batalov 2009-08-29 15:12:07 MSD
(In reply to comment #5)
> Если без Makefile.fpc, то просто 

Вы не могли бы приложить патч (diff) между сизифным srpm и Вашим исправленным (помимо lazarus.pp) ?
Comment 7 ashen 2009-08-31 14:44:46 MSD
Для 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.
Comment 8 Grigory Batalov 2009-09-01 00:29:42 MSD
> Fatal: Hе могy найти PPU файл Interfaces.
> ERROR: failed compiling of project /usr/src/RPM/BUILD/lazarus/tools/lazdatadesktop/lazdatadesktop.lpi

Вы не пробовали в хэшере пересобирать?
Comment 9 ashen 2009-09-01 09:38:52 MSD
Пардон, сам не много запутался и вас запутал. 
Нужно 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 для этого у меня слишком кривой получается ... Пока криво выходит ...

может я ещё что то упустил ...
Comment 10 ashen 2009-09-01 12:01:55 MSD
На данный момент вот такое:
[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]$

Надеюсь на днях доделаю и закрою эту багу
Comment 12 ashen 2009-09-01 19:36:56 MSD
Created attachment 3816 [details]
lazdatadesktop
Comment 13 ashen 2009-09-01 19:38:15 MSD
На 
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
Comment 14 Grigory Batalov 2009-09-04 04:28:22 MSD
На 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'
Comment 15 Grigory Batalov 2009-09-04 05:47:40 MSD
Я полагаю, вместо Makefile в components нужно рассовать Makefile.fpc с указанием под-директорий, тогда fpcmake -pwr по всем ним пройдётся и создаст Makefile для сборочной архитектуры.
Comment 16 ashen 2009-09-04 08:54:48 MSD
В спеке стоит вызов fpcmake -pwr, по идеи он должен обойти рекурсивно поддиректории и создать Makefile под конкретную архитектуру, но этого не происходит. От сюда и не собираемость на x86_64. Сейчас над этим и работаю.
По какой причине fpcmake не заходит да же в $LazarusDir/componets я так ещё не выяснил.
Comment 17 Grigory Batalov 2009-09-04 15:14:30 MSD
(В ответ на комментарий №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.
Comment 18 ashen 2009-09-04 16:09:01 MSD
Надо тогда в 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
Comment 19 Grigory Batalov 2009-09-05 00:37:59 MSD
Коммит 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'
Comment 20 ashen 2009-09-07 08:46:00 MSD
Уже столкнулся с этой ошибкой. Разбираюсь.
Comment 21 ashen 2009-09-07 20:02:53 MSD
Created attachment 3851 [details]
experemental lazarus spec

Григорий, проверьте сборку лазаря с приложенным спеком, лог сборки, если можно, мне письмом.
Comment 22 Grigory Batalov 2009-09-11 04:43:59 MSD
Наконец-то получилось, см. коммит 59e312b66 у меня в гите.
На первый взгляд, всё работает. Алексей, проверьте, пожалуйста, у себя, и я отправлю эту сборку в Сизиф.
Comment 23 ashen 2009-09-11 09:32:18 MSD
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 поставил в самый конец, после выше следующих строк. Иначе просто не собирается ...
Comment 24 ashen 2009-09-11 09:59:56 MSD
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]$

Или я не правильно прочитал спек?
Comment 25 Grigory Batalov 2009-09-11 13:45:02 MSD
(В ответ на комментарий №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
Comment 26 ashen 2009-09-11 14:29:33 MSD
(В ответ на комментарий №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

Ясно. Меньше вызовов, быстрее сборка. Спасибо за разъяснение.
Comment 27 ashen 2009-09-11 15:24:43 MSD
После обновления у меня так и не собирается.
Если лазарус собирается на 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 не указана платформа на.
Comment 28 ashen 2009-09-11 15:27:31 MSD
Да, если нет, то добавить такой каталог:
components/dbexport/lib/
Больше вроде нет замечаний.
Comment 29 Grigory Batalov 2009-09-11 16:59:26 MSD
(В ответ на комментарий №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/
> Больше вроде нет замечаний.
Вчера собиралось, а сегодня ещё не пробовал =)
Куда добавить-то?
Comment 30 ashen 2009-09-11 17:19:51 MSD
(В ответ на комментарий №29)
> (В ответ на комментарий №26)
> > Есть пара вопросов, но сначала надо посмотреть собранное.
> > Гриш, на x86_64 собирается?
> Разумеется.

Хорошо. Опасался, что rxnew не собирётся. Если есть возможность проверить на x86, проверь, пожалуйста. Чтобы убедится, что он не собирается именно на моём компе с AMD Phenom(tm) 9550 Quad-Core Processor

> (В ответ на комментарий №28)
> > Да, если нет, то добавить такой каталог:
> > components/dbexport/lib/
> > Больше вроде нет замечаний.
> Куда добавить-то?
в каталог components/dbexport/ подкаталог lib/
но если собралось бюез него, то в принципе можно и не делать этот подкаталог. :)
Comment 31 Grigory Batalov 2009-09-12 10:43:41 MSD
fixed in lazarus-0.9.26.2-alt3
Comment 32 AEN 2009-09-12 13:47:09 MSD
Спасибо!