GSOC project: #4334 Replace Mongoose with Civetweb
Ayushman Mishra
ayushvidushi01 at gmail.com
Mon Mar 29 15:49:31 UTC 2021
I have installed libbsd package (made
RTEMS_POSIX_API=True,RTEMS_NETWORKING=True in config.ini file to
enable POSIX and networking) but I am still confused about the work
already done in this project in past. Also after interacting on
discord I think completely replacing mongoose with another web-server
is not a good option since it may rise some user complaints who are
already using old system and may find it difficult to instantly switch
over to new system , instead civetweb can be added as an extra new
web-server where user has a choice to either use old mongoose or the
new web server both having all dependencies and functionalities
available.
Also I still don't know whether the project #4334 is long enough for
summer of code project and after going through docs I think
https://devel.rtems.org/ticket/4272 is also a very interesting project
since now I think I know a little bit about BSPs and I am good in
python and know shell-scripting. I would be very grateful to know more
about this project.
Thanks.
On Sat, Mar 27, 2021 at 5:36 PM Ayushman Mishra
<ayushvidushi01 at gmail.com> wrote:
>
> Greetings to all the respected mentors,
> 1. I saw there has been a lot of discussion regarding replacing
> mongoose with civetweb (
> https://lists.rtems.org/pipermail/devel/2016-April/014661.html ).
> I think the basic outline of the project is like this
> a. Completely removing mongoose and replace it with civetweb and make
> it configurable in rsb
> b. check the parameters and options available in civetweb and make it
> usable for users in rtems.
> c. making test-cases for civetweb (should be similar to mongoose)
> d. documentation of using civetweb and web-server in general.
> I would be very grateful to know what is the actual current status of
> this project and the coding involved in it enough for a summer of code
> project or some extra things should be added in it.
>
> Also,
> 2. I have build bsp on rtems6 and a simple application is working
> correct, but while trying to build libbsd package in rtems6
> (../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/6 \
> --host=sparc-rtems6 --with-rtems-bsp=erc32 6/rtems-libbsd ) I am
> constantly getting build failed
> RTEMS Source Builder - Set Builder, 6 (ade089253e70)
> Build Set: 6/rtems-libbsd
> config: tools/rtems-libbsd-6.cfg
> error: rtems-bsp.cfg:155: invalid %if operator: -mcpu=cypress
> -I/home/ayush/quick-start/rtems/6/sparc-rtems6/erc32/lib/include ==
> Build FAILED
> Build Set: Time 0:00:00.045392
> Build FAILED
>
> I also tried building all packages for bsp erc32
> (../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/6 \
> --with-rtems-tests=yes bsps/erc32) but after building for more
> than an hour it also gave build failed error.
> building: sparc-rtems6-kernel-erc32-1
> error: building sparc-rtems6-kernel-erc32-1
> Build FAILED
> See error report: rsb-report-sparc-rtems6-kernel-erc32-1.txt
> error: building sparc-rtems6-kernel-erc32-1
> Build Set: Time 0:23:14.195494
> error: building sparc-rtems6-kernel-erc32-1
> Build Set: Time 3:55:05.826612
> Build FAILED
>
> Thanks, Ayushman
>
> On Mon, Mar 22, 2021 at 6:37 AM Ayushman Mishra
> <ayushvidushi01 at gmail.com> wrote:
> >
> > Thanks a lot for help and information , actually i am trying to setup
> > mongoose on simple rtems application
> > (https://devel.rtems.org/wiki/Developer/Mongoose_Web_Server) and for
> > that right now I am trying to configure networking and file-system in
> > the application.
> >
> > On Sun, Mar 21, 2021 at 8:54 PM Joel Sherrill <joel at rtems.org> wrote:
> > >
> > >
> > >
> > > On Sun, Mar 21, 2021, 4:45 AM Christian Mauderer <oss at c-mauderer.de> wrote:
> > >>
> > >> Hello Ayushman,
> > >>
> > >> On 21/03/2021 04:15, Ayushman Mishra wrote:
> > >> > Ayushman
> > >> > Hello everyone , I am very much interested in taking
> > >> > https://devel.rtems.org/ticket/4334
> > >> > as a GSOC 2021 project. I know some basic networking concepts and would like to
> > >> > learn more about it and how its applied to OS like RTEMS , regarding
> > >> > this I have some questions.
> > >>
> > >> Note that the ticket will be more about integrating civetweb into a
> > >> RTEMS Source Builder (RSB) recipe and finding a way to make it
> > >> configurable there. Alternative could be some kind of stand alone repo
> > >> like for littlevgl.
> > >
> > >
> > > Making the civitweb configure options available to RTEMS user is a key point.
> > >
> > > It may make sense to do a repo with waf build system and config.ini that maps to their settings.
> > >
> > >>
> > >> civetweb builds on RTEMS nearly out of the box. So don't expect too much
> > >> C-Code.
> > >
> > >
> > > I set it up recently on Linux for embedding in their application. As you turned on options, it had more dependencies. This would have to be managed with RTEMS.
> > >
> > >>
> > >> I'm not yet sure how much work will be on that ticket. If it is too few
> > >> for a whole GSoC, you might want to think about reviving the discussion
> > >> about some useful civetweb parameters (for an embedded system) here:
> > >>
> > >> https://github.com/civetweb/civetweb/pull/297
> > >
> > >
> > > +1
> > >
> > > How to present the options to the user and manage their dependencies would be a key part of this.
> > >>
> > >>
> > >>
> > >>
> > >> >
> > >> > 1. After building a simple hello world application how and where should i write
> > >> > configurations of
> > >> > https://docs.rtems.org/branches/master/networking/using_networking_rtems_app.html
> > >> > OR https://docs.rtems.org/branches/master/user/migration/v4_11-to-v5.html#networking
> > >> > to start using networking stack in RTEMS .
> > >>
> > >> The documentation is currently mostly for the legacy stack. Please
> > >> ignore most of that. You should focus on a BSP that uses libbsd. The
> > >> legacy stack and it's documentation will be removed from the main repos
> > >> soon.
> > >>
> > >> > Also I think a simple shell has to be spawned to use networking modules in RTEMS
> > >> > and for getting it this
> > >> > https://docs.rtems.org/branches/master/shell/configuration_and_init.html#attached-to-a-serial-port
> > >> > I think could be a simple method and for doing so ( like executing
> > >> > rtems_shell_init with parameters )
> > >> > do i have to run the specific test in testsuite or re-run the application
> > >>
> > >> There is a "mghttpd01" test in rtems-libbsd which is used for the
> > >> current fixed version of mongoose that is integrated in RTEMS. I would
> > >> suggest to use that as a starting point.
> > >>
> > >> >
> > >> > 2. Is there any specific device or bsp needed for running networking
> > >> > or shell configurations
> > >> > with file-system in RTEMS
> > >>
> > >> Basically you can use every BSP that has network support. A good
> > >> simulation BSP where you don't need any hardware is xilinx_zynq_a9_qemu:
> > >>
> > >> https://docs.rtems.org/branches/master/user/bsps/bsps-arm.html#debugging-with-xilinx-zynq-a9-qemu
> > >>
> > >> Best Regards
> > >>
> > >> Christian
> > >>
> > >> > I would be very thankful if someone can please clarify my doubts and
> > >> > guide me further
> > >> > with this project as I am getting lost and don't know how to proceed
> > >> > after building a simple application.
> > >> > Thank-you
> > >> > _______________________________________________
> > >> > devel mailing list
> > >> > devel at rtems.org
> > >> > http://lists.rtems.org/mailman/listinfo/devel
> > >> >
> > >> _______________________________________________
> > >> devel mailing list
> > >> devel at rtems.org
> > >> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list