Menu

Will not build under BDS 2006

2008-07-12
2012-12-07
  • Mason Wheeler

    Mason Wheeler - 2008-07-12

    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?

     
    • Pierre Fauconnier

      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.

       
    • Mason Wheeler

      Mason Wheeler - 2008-07-12

      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?

       
      • Pierre Fauconnier

        > 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

         
        • Mason Wheeler

          Mason Wheeler - 2008-07-12

          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.

           
        • Mason Wheeler

          Mason Wheeler - 2008-07-12

          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?

           
          • Mason Wheeler

            Mason Wheeler - 2008-07-12

            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

             
            • Pierre Fauconnier

              > 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 ?

               
              • Mason Wheeler

                Mason Wheeler - 2008-07-12

                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.

                 
                • Pierre Fauconnier

                  > 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.

                   
                • Mason Wheeler

                  Mason Wheeler - 2008-07-12

                  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. :(

                   
                  • Pierre Fauconnier

                    > 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.

                     
                    • Mason Wheeler

                      Mason Wheeler - 2008-07-12

                      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.

                       
    • Mason Wheeler

      Mason Wheeler - 2008-07-12

      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.

       
      • Pierre Fauconnier

        > 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.

         
        • Mason Wheeler

          Mason Wheeler - 2008-07-12

          OK. Where can I find the patched version? Because the one I got out of SVN is built for Indy 9.

           
          • Pierre Fauconnier

            > 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.

             
            • Mason Wheeler

              Mason Wheeler - 2008-07-12

              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.

               
              • Pierre Fauconnier

                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 ?

                 
                • Mason Wheeler

                  Mason Wheeler - 2008-07-12

                  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.

                   
    • Mason Wheeler

      Mason Wheeler - 2008-07-13

      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.

       

Log in to post a comment.

MongoDB Logo MongoDB