×

Discussion Board

Page 1 of 3 123 LastLast
Results 1 to 15 of 36
  1. #1
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Raccoon 0.9.0 released

    Raccon 0.9.0 is now available for download at SourceForge:

    http://sourceforge.net/project/showf...roup_id=167580

    Highlights
    • Raccoon SDK made available. Now you do not have to build everything, in order to create a native Apache module. Only for S60 3rd Edition.
    • All existing Apache modules that (currently) can be built on Symbian are built and included as dynamically loadable modules in the S60v3 version and can be enabled simply by adding an entry to httpd.conf. Enabling/disabling modules in the S60v2.x version only requires the editing of one single file + rebuild.
    • There are now sis-files than contain everything, so installation is easier.
    • Built against PyS60 1.3.17.

  2. #2
    Registered User
    Join Date
    Nov 2006
    Posts
    9

    Re: Raccoon 0.9.0 released

    Hello,
    I've just installed raccoon_bundle_0_9_0_with_pys60_1_3_17_2ndEdFp2.sis, and is working, but it will not install in "e:", just "c:". I've tried a couple of times, it doesn't give any error message, I choose to install in the memory card but the I find the "data/apache" directory under "c:", not "e:".
    Ernesto

  3. #3
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by ernesto.ferrari
    Hello,
    I've just installed raccoon_bundle_0_9_0_with_pys60_1_3_17_2ndEdFp2.sis, and is working, but it will not install in "e:", just "c:". I've tried a couple of times, it doesn't give any error message, I choose to install in the memory card but the I find the "data/apache" directory under "c:", not "e:".
    Ernesto
    Yes, the Apache root directory is in this version always C:\Data\Apache, even if the binaries have been installed to the E:-drive.

    The reason is that paths in httpd.conf must have a drive letter and it proved to be impossible to arrange for a different httpd.conf to be installed depending on whether the binaries are installed to C or E, if everything is installed in one SIS-package (something that many have asked for). Consequently, the apache root is now always on C....

  4. #4
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    I'm trying to recompile raccoon, but I run into a problem when I try to make the sis file. The project seemed to build properly for gcce urel

    The generated mws_2_gcce_urel.pkg file in the install directory tries to include mod_unique_id.so but it doesn't exist in the epoc32/build directory, so makesis errors out.

    I tracked down the problem to http\httpd-2.0\modules\metadata\bld.inf. The mod_unique_id.mmp file is commented out. Is it supposed to not be included? By the comment on the line above in the file, seems that way. I guess then httpd\install\httpd.files needs to have the mod_unique_id.so include line commented out?

  5. #5
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by lakiolen
    I tracked down the problem to http\httpd-2.0\modules\metadata\bld.inf. The mod_unique_id.mmp file is commented out. Is it supposed to not be included? By the comment on the line above in the file, seems that way. I guess then httpd\install\httpd.files needs to have the mod_unique_id.so include line commented out?
    Yes, mod_unique_id.so should be excluded, so you can comment it out or just remove the reference alltogether. Hmm, now I wonder how did not bump into that problem...

    Note that although Raccoon can be built using gcce, loading dynamic modules with a gcce built Raccoon does not work. The module can be loaded, but the module structure contains garbage. This is handwaving, but I suspect that there is a problem with the abiv2 toolchain, since the behaviour is the same also when building using armv5_abiv2 that shares parts of the toolchain with gcce. It seems that some relocations are not done propely if the loaded DLL contains static data over some unknown treshold.

    Everything works fine when building using the armv5 platform. So, the options you have when using gcce are:
    • Build Raccoon so that the modules you want to have are statically linked in. You can choose what to build in simply by editing httpd\options.h. First you have to unconditionally turn on BUILD_AS_MONOLITH (by default it is always turned off when building on EKA2). Then further down, in the right branch, turn on those modules you want to build in.
    • Use the SDK that contains that both abiv1 (armv5) and abiv2 (gcce and armv5_abiv2) libraries and only compile your new module using GCCE; check out mod_symbian_example.zip. Provided your module does not use static data excessively, it can successfully be loaded by the prebuilt (armv5) Raccoon that you can install on your phone.

  6. #6
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by jhnwkmn
    • Build Raccoon so that the modules you want to have are statically linked in. You can choose what to build in simply by editing httpd\options.h. First you have to unconditionally turn on BUILD_AS_MONOLITH (by default it is always turned off when building on EKA2). Then further down, in the right branch, turn on those modules you want to build in.
    It doesn't work that simply. The mmp includes of the modules not being built in also have to be left out of the bld.inf files. Otherwise the build system will error out trying to build those modules.

    Just changing '#undef BUILD_AS_MONOLITH' to '#define BUILD_AS_MONOLITH':
    Code:
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd_MR\mws\
    phone\group\MOD_AUTH\GCCE\MOD_AUTH.GCCE" UREL
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd_MR\mws\
    phone\group\MOD_AUTH_ANON\GCCE\MOD_AUTH_ANON.GCCE" UREL
    Mod_auth_anon.c
    cc1.exe: warning: command line option "-Wno-ctor-dtor-privacy" is valid for C++/
    ObjC++ but not for C
    arm-none-symbianelf-ld: ..\..\..\EPOC32\RELEASE\ARMV5\LIB\httpd.dso: No such fil
    e: No such file or directory
    make[1]: *** [..\..\..\EPOC32\RELEASE\GCCE\UREL\mod_auth_anon.so] Error 1
    make: *** [TARGETMOD_AUTH_ANON] Error 2
    With commenting out the 'mod_auth_anon.mmp' include:
    Code:
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd_MR\mws\
    phone\group\MOD_AUTH\GCCE\MOD_AUTH.GCCE" UREL
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd_MR\mws\
    phone\group\MOD_AUTH_DIGEST\GCCE\MOD_AUTH_DIGEST.GCCE" UREL
    Mod_auth_digest.c
    cc1.exe: warning: command line option "-Wno-ctor-dtor-privacy" is valid for C++/
    ObjC++ but not for C
    arm-none-symbianelf-ld: ..\..\..\EPOC32\RELEASE\ARMV5\LIB\httpd.dso: No such fil
    e: No such file or directory
    make[1]: *** [..\..\..\EPOC32\RELEASE\GCCE\UREL\mod_auth_digest.so] Error 1
    make: *** [TARGETMOD_AUTH_DIGEST] Error 2
    mod_auth_anon is left out of the compilation but then mod_auth_digest errors out because I didn't comment it out.

  7. #7
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    After trying the second way to modify raccoon, I now think the problem is more that EPOC32\RELEASE\ARMV5\LIB\httpd.dso doesn't exist. No idea how that file disappeared....

    Re-unzipped the SDK and now building mod_symbian_example works.

    Building raccoon still doesn't build though.
    Code:
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\9.1\S60_3rd_MR_2\
    mws\phone\group\MOD_AUTH_DIGEST\GCCE\MOD_AUTH_DIGEST.GCCE" UREL
            1 file(s) copied.
    elf2e32 : Error: E1036: Symbol ap_lookup_symbol Missing from ELF File : ..\..\..
    \EPOC32\BUILD\Symbian\9.1\S60_3rd_MR_2\mws\phone\group\MOD_AUTH_DIGEST\GCCE\UREL
    \mod_auth_digest.so.
    The system cannot find the file specified.
    make[1]: *** [..\..\..\EPOC32\RELEASE\GCCE\UREL\mod_auth_digest.so] Error 1
    make: *** [TARGETMOD_AUTH_DIGEST] Error 2

  8. #8
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by lakiolen
    After trying the second way to modify raccoon, I now think the problem is more that EPOC32\RELEASE\ARMV5\LIB\httpd.dso doesn't exist. No idea how that file disappeared....

    Re-unzipped the SDK and now building mod_symbian_example works.

    Building raccoon still doesn't build though.
    Sorry, there's a bug in httpd/options.h. Towards the end of that file you need to replace all
    Code:
    #if !defined(EKA2) || defined(HAVE_BUILTIN_MOD_ACCESS)
    lines with
    Code:
    #if defined(BUILD_AS_MONOLITH) || defined(HAVE_BUILTIN_MOD_ACCESS)
    Note that the SDK only contains libraries for building with BUILD_AS_MONOLITH not defined. That is, the SDK can only be used for building dynamic modules to be loaded by an armv5 built Apache. The error message you saw about a missing httpd.dso was caused by the modules (because of the error in options.h) being built as DLLs and not as static libraries.
    Last edited by jhnwkmn; 2007-01-23 at 06:51.

  9. #9
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by jhnwkmn
    Note that the SDK only contains libraries for building with BUILD_AS_MONOLITH not defined. That is, the SDK can only be used for building dynamic modules to be loaded by an armv5 built Apache. The error message you saw about a missing httpd.dso was caused by the modules (because of the error in options.h) being built as DLLs and not as static libraries.
    I was hoping to create a version of Raccoon that had a few more capabilities so that I could, for instance, get Location information. Guess I can't unless I get my hands on the proper armv5 compiler.

  10. #10
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by lakiolen
    I was hoping to create a version of Raccoon that had a few more capabilities so that I could, for instance, get Location information. Guess I can't unless I get my hands on the proper armv5 compiler.
    But you can do that also with gcce. The "only" problem is that you have to build everything into the Apache binary and cannot load modules dynamically. But you can assign whatever capabilities your certificate allows you to. And if you do, those capabilities are available to any Python/PSP scripts you make. So, although you cannot dynamically load Apache modules into a gcce-built Raccoon, you can provide new functionality via Python/PSP scripts.

    However, I do see your point. It's extremely unfortunate that the Location capability is not available to self-signed binaries. It is the one capability that really is needed in order to be able to make the mobility of a mobsite have an affect on the returned content. For instance, combining the location with Google Maps in order to return a map with your position.

  11. #11
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    I misunderstood what you said about building with BUILD_AS_MONOLITH not defined. I thought you meant you can't build anything, not just not being able to build dynamically loadable modules.

    In that case, I've got another error, yay:

    building succeeds

    making the package doesn't
    Code:
    C:\Symbian\9.1\S60_3rd_MR\mws\phone\install>make EKA=2 PLATFORM=gcce BUILD=ure
    l CERTIFICATE=c:\workspace\DevCert.cer KEY=c:\workspace\PrivKey.key PASSPHRASE
    =****** sis
    C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/make.exe EKA=2 PLATFORM="gcce" BUILD="u
    rel" CERTIFICATE="c:\workspace\DevCert.cer" KEY="c:\workspace\PrivKey.key" PAS
    SPHRASE=***** VERSION=0_9_0 -f mws.mk sis
    make.exe[1]: Entering directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/install'
    cpp -P -I C:/Symbian/9.1/S60_3rd_MR/epoc32/include  -DCREATING_PKG -DSIS_TAIL=
    _2_gcce_urel.sis mws.pkgi 2> mws_2_gcce_urel.pkg.errors |\
     perl -pe "s/EKA/2/g; s/PLATFORM/gcce/g; s/BUILD/urel/g; s@EPOC32@C:/Symbian/9
    .1
    /S60_3rd_MR/epoc32@g; s@EPOCPATH@C:/Symbian/9.1/S60_3rd_MR/@g; s/\n/\r\n/;"
    > mws_2_gcce_urel.pkg
    perl -e "open(ERR, 'mws_2_gcce_urel.pkg.errors') || exit; while(<ERR>){ next 
    if
    /invalid/; print; die;} close(ERR); unlink 'mws_2_gcce_urel.pkg.errors'"
    C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/make.exe -C ../httpd/install httpdconf.
    sis
    make.exe[2]: Entering directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/httpd/ins
    tall'
    make.exe[2]: `httpdconf.sis' is up to date.
    make.exe[2]: Leaving directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/httpd/inst
    all'
    perl -MFile::Copy -e "copy('../httpd/install/httpdconf.sis', '.');"
    C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/make.exe -C ../httpd/install webcontent
    .sis
    make.exe[2]: Entering directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/httpd/ins
    tall'
    make.exe[2]: `webcontent.sis' is up to date.
    make.exe[2]: Leaving directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/httpd/inst
    all'
    perl -MFile::Copy -e "copy('../httpd/install/webcontent.sis',  '.');"
    makesis mws_2_gcce_urel.pkg mws_2_gcce_urel.unsigned.sis
    Processing mws_2_gcce_urel.pkg...
    mws_2_gcce_urel.pkg(1535) : error: file I/O fault.
    make.exe[1]: *** [mws_2_gcce_urel.sis] Error 1
    make.exe[1]: Leaving directory `C:/Symbian/9.1/S60_3rd_MR/mws/phone/install'
    C:\Symbian\9.1\S60_3rd_MR\epoc32\tools\make.exe: *** [mws] Error 2
    By running the failing command with -v,
    Code:
    C:\Symbian\9.1\S60_3rd_MR\mws\phone\install>makesis -v mws_2_gcce_urel.pkg mws
    _2_gcce_urel.unsigned.sis
    Processing mws_2_gcce_urel.pkg...
    mws_2_gcce_urel.pkg(1473) : processing comment
    mws_2_gcce_urel.pkg(1475) : processing languages
    mws_2_gcce_urel.pkg(1479) : processing vendor name
    mws_2_gcce_urel.pkg(1481) : processing unique vendor name
    mws_2_gcce_urel.pkg(1485) : processing header
    mws_2_gcce_urel.pkg(1487) : processing target device
    mws_2_gcce_urel.pkg(1511) : processing file
    mws_2_gcce_urel.pkg(1513) : processing file
    mws_2_gcce_urel.pkg(1519) : processing comment
    mws_2_gcce_urel.pkg(1521) : processing comment
    mws_2_gcce_urel.pkg(1523) : processing comment
    mws_2_gcce_urel.pkg(1525) : processing comment
    mws_2_gcce_urel.pkg(1529) : processing file
    mws_2_gcce_urel.pkg(1531) : processing file
    mws_2_gcce_urel.pkg(1535) : processing file
    mws_2_gcce_urel.pkg(1535) : error: file I/O fault.
    it looks like it's failing on
    Code:
    "C:/Symbian/9.1/S60_3rd_MR/epoc32\release\gcce\urel\aprutil.dll"         - "!:\sys\bin\aprutil.dll"

  12. #12
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by lakiolen
    I misunderstood what you said about building with BUILD_AS_MONOLITH not defined. I thought you meant you can't build anything, not just not being able to build dynamically loadable modules.

    In that case, I've got another error, yay:
    ...
    it looks like it's failing on
    Code:
    "C:/Symbian/9.1/S60_3rd_MR/epoc32\release\gcce\urel\aprutil.dll"         - "!:\sys\bin\aprutil.dll"
    Since you are building using gcce and hence creating a monolith, that file has not been built and should not be included in the SIS. I think there is a bug in mws.pkgi. Please add the line
    Code:
    #include "../httpd/options.h"
    after the other includes in mws.pkgi. That should do the trick.

    Many thanks for helping to sort this out!

    Here's another thing you can try if what you primarily want is more capabilities. Note that I havn't tried anything of this myself, so you may be in for some experimentation...

    First, download http://developer.symbian.com/main/do...IS%20Setup.exe, which is a tool for extracting files from a SIS-file. Using that you should be able to extract all armv5 binaries from the prebuilt Raccoon sis.

    Then change the capabilities of the binaries using either the tool setcap http://www.symbian.com/developer/tec...ool.guide.html or ensymble http://www.nbl.fi/~nbl928/ensymble.html. You will need to adjust the capabilities of httpds.exe, httpd.dll, apr.dll, aprutil.dll and all modules. Note that all DLLs must have at least as many capabilities as the executable.

    Finally, create a new SIS-installation package that you sign with your certificate and install to your phone.

    In the future I'll make all binaries available in a zip-file so that you don't have to extract the files from the prebuilt SIS.

  13. #13
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by jhnwkmn
    Here's another thing you can try if what you primarily want is more capabilities. Note that I havn't tried anything of this myself, so you may be in for some experimentation...

    First, download http://developer.symbian.com/main/do...IS%20Setup.exe, which is a tool for extracting files from a SIS-file. Using that you should be able to extract all armv5 binaries from the prebuilt Raccoon sis.

    Then change the capabilities of the binaries using either the tool setcap http://www.symbian.com/developer/tec...ool.guide.html or ensymble http://www.nbl.fi/~nbl928/ensymble.html. You will need to adjust the capabilities of httpds.exe, httpd.dll, apr.dll, aprutil.dll and all modules. Note that all DLLs must have at least as many capabilities as the executable.

    Finally, create a new SIS-installation package that you sign with your certificate and install to your phone.

    In the future I'll make all binaries available in a zip-file so that you don't have to extract the files from the prebuilt SIS.
    Unfortunately it seems unsis doesn't understand the sisx format.

    Code:
    C:\tmp>unsis raccoon_0_9_0_3rdEd.sis raccoon
    
    Processing: raccoon_0_9_0_3rdEd.sis
    Can't read SIS file version: 33415
    Could not process SIS file raccoon_0_9_0_3rdEd.sis
    
    C:\tmp>unsis raccoon_bundle_0_9_0_3rdEd.sis raccoon
    
    Processing: raccoon_bundle_0_9_0_3rdEd.sis
    Can't read SIS file version: 23863
    Could not process SIS file raccoon_bundle_0_9_0_3rdEd.sis
    The program is Copyright (c) 2004.

    --Edit--
    I found http://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html
    a python tool that will extract files from a v9 .sis file, among other things.
    Last edited by lakiolen; 2007-01-25 at 07:13.

  14. #14
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Raccoon 0.9.0 released

    Quote Originally Posted by lakiolen
    I found http://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html
    a python tool that will extract files from a v9 .sis file, among other things.
    Thanks for the pointer.

    I've now also uploaded raccoon_0_9_1_SDK_3rdEd.zip that also contains the armv5 binaries, so you don't necessarily need to extract those files from the SIS.

    If you want all 0.9.1 source (that contains the fixes of this thread) then pull it directly from the SourceForge subversion repository.
    Code:
    svn co https://raccoon.svn.sourceforge.net/svnroot/raccoon/phone/tags/release-0.9.1/phone

  15. #15
    Registered User
    Join Date
    Aug 2006
    Location
    SF Bay Area
    Posts
    27

    Re: Raccoon 0.9.0 released

    I, in theory, am able to change the capabilities of the binaries and repackage everything.

    1. Extract the contents of the sis file.
      Code:
      C:\tmp>sisinfo.py -f raccoon_0_9_0_3rdEd.sis -e raccoon
      
      C:\tmp\raccoon>ls
      data  private  resource  sys
    2. Change the capabilities of the binaries (where * is a list of all the files)
      Code:
      C:\tmp\raccoon\sys\bin>c:\ensymble_python2.5-0.20-2.py altere32 --inplace 
      --caps=PowerMgmt+ReadDeviceData+WriteDeviceData+TrustedUI+ProtServ+SwEvent+
      NetworkServices+LocalServices+ReadUserData+WriteUserData+Location+SurroundingsDD
      +UserEnvironment *
    3. Modify mws_2_gcce_urel.pkg and mwssc_2_gcce_urel.pkg to point to the new locations of the modified binaries

    4. Remake the packages
      Code:
      C:\tmp\raccoon>makesis raccoon.pkg
      Processing raccoon.pkg...
      Created raccoon.SIS
      
      C:\tmp\raccoon>signsis -s raccoon.SIS raccoon_signed.SIS CERTIFICATE KEY PASSPHR
      ASE
      
      C:\tmp\raccoon>makesis raccoon_bundle.pkg
      Processing raccoon_bundle.pkg...
      Created raccoon_bundle.SIS
      
      C:\tmp\raccoon>signsis -s raccoon_bundle.SIS raccoon_bundle_signed.SIS CERTIFICA
      TE KEY PASSPHRASE


    Although Raccoon isn't exactly loading at the moment.

Similar Threads

  1. Raccoon: system error
    By pvma in forum Mobile Web Server
    Replies: 10
    Last Post: 2010-05-21, 11:25
  2. Raccoon + Gnubox issues?
    By ernesto.ferrari in forum Mobile Web Server
    Replies: 4
    Last Post: 2007-02-02, 11:22
  3. [announce] Raccoon 0.7.1
    By cyke64 in forum Symbian
    Replies: 0
    Last Post: 2006-10-26, 13:52
  4. [announce] Raccoon for 3rd Ed !
    By cyke64 in forum Symbian
    Replies: 0
    Last Post: 2006-08-18, 07:01
  5. UIQ support for Carbide.vs 2.0.1 released
    By mitts in forum Symbian Tools & SDKs
    Replies: 0
    Last Post: 2006-03-10, 16:01

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×