I just downloaded the source for devpbp2 and all the necessary components, and spent the last 4 hours trying to get it to build. I got all the packages to install except for IdRunner; that won't build under BDS2006 because it's apparently compiled against an outdated version of Indy. Anyone able to help out a bit?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yep. Those instructions worked well enough until I tried to build idRunner. I've run into four problems there.
1. In the DPK file, "requires Indy". No such package name. I commented it out without trouble.
2. In idISAPIRunner.pas, line 416, references an undefined variable named "thread". I added "{$IFDEF VER180} thread: TIdContext;{$ENDIF}" to the Var section, and it worked.
3. In idISAPIRunner.pas, line 542, "tmps := GStack.WSGetHostByAddr(RequestInfo.RemoteIP);" This is outdated syntax, used in Indy 9. Changed it to "tmps := GStack.HostByAddress(RequestInfo.RemoteIP);"
4. Again in idISAPIRunner.pas, line 872, variable declaration "Thread : TIdPeerThread;". Again, outdated syntax. This file type is only used in Indy 9, not Indy 10. Wasn't able to find any obvious way to update this, so I'm stuck. Any help?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I've run into four problems there
I guess that it's coming directly from BDS2006 ;)
> 1- "requires Indy". No such package name. I commented it out without trouble.
Indy is mandatory because our internal web server is made of Indy.
> 2- idISAPIRunner.pas, line 416, references an undefined variable named "thread".
We're using idCGIRunner.pas - we don't need to compile idISAPIRunner
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK. I removed that from the list and it compiles now. Found another problem, though.
Somewhere between D6 and D10 (BDS 2006), a unit named WideStrUtils was apparently added to the RTL. This causes a namespace collision in the Utilities package. Renaming it fixes the problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Another problem:
In the WebServPack package, in WebServ.pas, it uses IdCustomHTTPServer and IdHTTPServer, both of which are Indy 9 only. Any workaround available for this one?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, and I got it to work by explicitly adding the appropriate Indy packages to the WebServ requires list. But now I've hit a real doozy.
Having installed all the components, I went to build DevPhp itself, and got the error:
[Pascal Fatal Error] devphp.dpr(64): F2051 Unit Menus was compiled with a different version of UxTheme.TMT_FLATMENUS
I had already removed Theme Manager from the list. From ThemeMgr.pas:
{$ifdef COMPILER_7_UP}
ATTENTION! Theme support is already included in this Borland product.
Remove the Delphi Gems Theme Manager from your project to compile it correctly!
{$endif COMPILER_7_UP}
Now, the UxTheme.pas that's in this Theme Manager package doesn't declare anything called TMT_FLATMENUS, though it does refer to it in comments. In the Delphi RTL version, it's declared as:
const
TMT_FLATMENUS = 1001;
{$EXTERNALSYM TMT_FLATMENUS}
So I'm really not sure what's going on, or what any of it has to do with menus.pas, but it looks like until this is resolved, it's impossible to build DevPHP on any Delphi version above 6.
Any help would be welcome.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> F2051 Unit Menus was compiled with a different version of UxTheme
Another unknown error.
We're using ThemeManager (1.10.1.1 from Mike Lischke 2005-jan-22)
svn://www.mswil.ch/devphp/branches_2.1/component/Theme Manager/Source/ThemeMgr.pas
But I'm wondering if this will work easily ;)
Indeed, ThemeMgr is also used by (at least) VirtualTrees (Mike Lischke), VirtualShellTools (Jim Kueneman), and TBX package (Alex A. Denisov)...
Hard work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Right. That's not necessary after Delphi 6 because theme support was integrated into the Delphi RTL beginning with Delphi 7. The Theme Manager explicitly points that out and makes sure to bring it to your attention with that block I pasted in above. VirtualTrees and VirtualShellTools are designed to work without it at D7 and above.
See if you can get an old copy of Delphi 7--if nothing else, I'm sure there are a zillion torrents for it--and make DevPHP compile under it without ThemeManager. That would probably fix the problem under 2006 as well. I simply don't know enough about the workings of the RTL to fix something like this. :(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Addendum: I looked up idRunner online, and it's specifically "for Indy 8 and 9". ( http://users.telenet.be/ws36637/ ) It doesn't appear that an Indy 10 version was ever made.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> It doesn't appear that an Indy 10 version was ever made
The idRunner project doesn't seem to be maintained.
So we've patched a copy of it while switching to Indy 10.
Till now, that seemed to work fine.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> OK. Where can I find the patched version ?
It's coming from Urs' server
svn://www.mswil.ch/devphp/branches_2.1/component/php4delphi/idCGIRunner/idCGIRunner.pas
It's included it because it's included in the "contains" section of the DPK. I got it to compile fine by removing the file from the list. I hope this doesn't break any functionality.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I just downloaded the source for devpbp2 and all the necessary components, and spent the last 4 hours trying to get it to build. I got all the packages to install except for IdRunner; that won't build under BDS2006 because it's apparently compiled against an outdated version of Indy. Anyone able to help out a bit?
Hi,
Don't know about BDS2006...
Here is the step by step guide written by tooldeveloper one month ago
Works for D6
http://devphp.wiki.sourceforge.net/devphp2_tech.step_by_step_setup
> outdated version of Indy
Weird, Dev-PHP is using Indy 10...
Regards,
Pierre.
Yep. Those instructions worked well enough until I tried to build idRunner. I've run into four problems there.
1. In the DPK file, "requires Indy". No such package name. I commented it out without trouble.
2. In idISAPIRunner.pas, line 416, references an undefined variable named "thread". I added "{$IFDEF VER180} thread: TIdContext;{$ENDIF}" to the Var section, and it worked.
3. In idISAPIRunner.pas, line 542, "tmps := GStack.WSGetHostByAddr(RequestInfo.RemoteIP);" This is outdated syntax, used in Indy 9. Changed it to "tmps := GStack.HostByAddress(RequestInfo.RemoteIP);"
4. Again in idISAPIRunner.pas, line 872, variable declaration "Thread : TIdPeerThread;". Again, outdated syntax. This file type is only used in Indy 9, not Indy 10. Wasn't able to find any obvious way to update this, so I'm stuck. Any help?
> I've run into four problems there
I guess that it's coming directly from BDS2006 ;)
> 1- "requires Indy". No such package name. I commented it out without trouble.
Indy is mandatory because our internal web server is made of Indy.
> 2- idISAPIRunner.pas, line 416, references an undefined variable named "thread".
We're using idCGIRunner.pas - we don't need to compile idISAPIRunner
OK. I removed that from the list and it compiles now. Found another problem, though.
Somewhere between D6 and D10 (BDS 2006), a unit named WideStrUtils was apparently added to the RTL. This causes a namespace collision in the Utilities package. Renaming it fixes the problem.
Another problem:
In the WebServPack package, in WebServ.pas, it uses IdCustomHTTPServer and IdHTTPServer, both of which are Indy 9 only. Any workaround available for this one?
My mistake. IdCustomHTTPServer is Indy 9 only. IdHTTPServer isn't. But it still gives me this error:
[Pascal Fatal Error] WebServ.pas(7): F2051 Unit IdHTTPServer was compiled with a different version of IdBaseComponent.TIdInitializerComponent.Create
> F2051 Unit IdHTTPServer was compiled with a different version of IdBaseComponent
This one is unknown - interesting.
I presume that Indy was already installed (it may come with installation of Delphi).
Is this true ?
Yes, and I got it to work by explicitly adding the appropriate Indy packages to the WebServ requires list. But now I've hit a real doozy.
Having installed all the components, I went to build DevPhp itself, and got the error:
[Pascal Fatal Error] devphp.dpr(64): F2051 Unit Menus was compiled with a different version of UxTheme.TMT_FLATMENUS
I had already removed Theme Manager from the list. From ThemeMgr.pas:
{$ifdef COMPILER_7_UP}
ATTENTION! Theme support is already included in this Borland product.
Remove the Delphi Gems Theme Manager from your project to compile it correctly!
{$endif COMPILER_7_UP}
Now, the UxTheme.pas that's in this Theme Manager package doesn't declare anything called TMT_FLATMENUS, though it does refer to it in comments. In the Delphi RTL version, it's declared as:
const
TMT_FLATMENUS = 1001;
{$EXTERNALSYM TMT_FLATMENUS}
So I'm really not sure what's going on, or what any of it has to do with menus.pas, but it looks like until this is resolved, it's impossible to build DevPHP on any Delphi version above 6.
Any help would be welcome.
> F2051 Unit Menus was compiled with a different version of UxTheme
Another unknown error.
We're using ThemeManager (1.10.1.1 from Mike Lischke 2005-jan-22)
svn://www.mswil.ch/devphp/branches_2.1/component/Theme Manager/Source/ThemeMgr.pas
But I'm wondering if this will work easily ;)
Indeed, ThemeMgr is also used by (at least) VirtualTrees (Mike Lischke), VirtualShellTools (Jim Kueneman), and TBX package (Alex A. Denisov)...
Hard work.
Right. That's not necessary after Delphi 6 because theme support was integrated into the Delphi RTL beginning with Delphi 7. The Theme Manager explicitly points that out and makes sure to bring it to your attention with that block I pasted in above. VirtualTrees and VirtualShellTools are designed to work without it at D7 and above.
See if you can get an old copy of Delphi 7--if nothing else, I'm sure there are a zillion torrents for it--and make DevPHP compile under it without ThemeManager. That would probably fix the problem under 2006 as well. I simply don't know enough about the workings of the RTL to fix something like this. :(
> VirtualTrees and VirtualShellTools are designed to work without it at D7 and above
Nothing about TBX package ?
> Delphi 7
Why not. I'll look for it.
To be continued.
Many thanks for your reports,
Pierre.
Not sure about TBX.
Do you have IM? It seems we're both on right now; we could work on this a lot more profitably in real-time.
Addendum: I looked up idRunner online, and it's specifically "for Indy 8 and 9". ( http://users.telenet.be/ws36637/ ) It doesn't appear that an Indy 10 version was ever made.
> It doesn't appear that an Indy 10 version was ever made
The idRunner project doesn't seem to be maintained.
So we've patched a copy of it while switching to Indy 10.
Till now, that seemed to work fine.
OK. Where can I find the patched version? Because the one I got out of SVN is built for Indy 9.
> OK. Where can I find the patched version ?
It's coming from Urs' server
svn://www.mswil.ch/devphp/branches_2.1/component/php4delphi/idCGIRunner/idCGIRunner.pas
See also http://sourceforge.net/forum/message.php?msg_id=5091267
I don't understand why BDS2006 would use idISAPIrunner.pas
We only need idCGIRunner.pas
Thanks for your report,
Pierre.
It's included it because it's included in the "contains" section of the DPK. I got it to compile fine by removing the file from the list. I hope this doesn't break any functionality.
The components are supposed to be compiled from allcomponents.bpg
svn://www.mswil.ch/devphp/branches_2.1/component/allcomponents.bpg
Could this be the misunderstanding ?
Aww crap. I was compiling from the Source folder, not Branches_2.1. (2.1 looked like an older version.)
I'm fixing this code tree up so that it'll compile under Delphi 10. When I get it working, I'll check the updated version into SVN.
All right. I got it to build, finally. I added some notes for later versions of Delphi to the wiki, so later users don't have the same trouble I did. They can be found here: http://devphp.wiki.sourceforge.net/Installation+guide+for+Delphi+7+or+above
I also updated the Delphi 6 setup guide with a note to check the notes on that page if you're using a later version of Delphi.